存储桶名称:wmmzz

1.存储桶策略设置

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "PublicReadGetObject",
            "Effect": "Allow",
            "Principal": "*",
            "Action": "s3:GetObject",
            "Resource": "arn:aws:s3:::wmmzz/*"
        }
    ]
}

2. 创建lambda函数

点击跳转到IAM控制台,创建自定义角色,选择服务类型lambda,创建策略

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:PutLogEvents"
            ],
            "Resource": "arn:aws:logs:*:*:*"
        },
        {
            "Effect": "Allow",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::wmmzz/*"
        }
    ]
}

输入策略下一步取名resize-policy,回到创建角色页面,搜索刚才创建的策略选中,再搜索AmazonS3FullAccess选中

点击下一步,输入角色名称resize-role,点击“创建角色”。

回到创建函数页面,选择“使用现有角色”,选择刚才创建的角色:

然后点击右下角创建函数

3.添加触发器

回到创建函数页面的顶部 Designer 部分, 左边有一个 +添加触发器 的选项单击,
选择 API Gateway
创建新的API
安全: 打开

点击添加
回到界面顶部,选择DesignerAPI Gateway. 点击API Gateway 下面的详细信息 复制API 终端节点URL

4: 桶静态网站托管配置

回到S3桶的设置界面: 属性 -> 静态网站托管
索引文档:index.html
错误文档:error.html
重定向规则:

[
    {
        "Condition": {
            "HttpErrorCodeReturnedEquals": "404"
        },
        "Redirect": {
            "HostName": "wmmzz.execute-api.ap-east-1.amazonaws.com",
            "HttpRedirectCode": "307",
            "Protocol": "https",
            "ReplaceKeyPrefixWith": "default/resize?path="
        }
    }
]

注意上面的 HostName 和 ReplaceKeyPrefixWith 内容分别为刚才复制的API终端节点的值。

5. 配置lambda环境变量

BUCKET=wmmzz
URL=http://wmmzz.s3-website.ap-east-1.amazonaws.com
WHITELIST=100x100         #选择性使用,表示只允许裁剪成100x100的规格,可填写其他规格,其中x为字母
URL填写下图链接

6. 上传resize函数代码

下载地址: https://github.com/sagidM/s3-resizer/releases/tag/3.1.0

https://pan.baidu.com/s/12uMbrJmoHjvwdzFmPfH1MQ

7. 测试

{
  "queryStringParameters": {
    "path": "image/100x100/1.jpg"
  }
}
location后的链接就是裁剪后的图片地址,可直接访问

参考文献:

https://blog.csdn.net/wjm158/article/details/108209109

https://github.com/sagidM/s3-resizer

Logo

亚马逊云科技开发者 Build On 是由亚马逊团队策划、开发者社区联合打造的动手实操系列活动。

更多推荐