存储桶名称: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
安全: 打开
点击添加
回到界面顶部,选择Designer的API 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为字母
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"
}
}
所有评论(0)