列出 AWS S3 存储桶中的对象(使用无服务器部署)
List objects in an AWS S3 bucket (deployed using Serverless)
我似乎遇到了权限问题,找不到任何 SO 答案来解决这个问题。
我的 Lambda 函数很简单(注意——我使用 Babel 进行转译):
import AWS from "aws-sdk";
import { success, failure} from "./libs/response-lib";
export async function main(event, context, callback) {
const s3 = new AWS.S3();
const params = {
Bucket: "mybucket",
};
try {
const result = await s3.listObjectsV2(params);
return success(result);
}
catch(e) {
return failure({ status: false, message: e })
}
}
当我使用无服务器部署并命中它给我的端点时,我收到了 500 错误。
我已将其包含在我的 serverless.yml
文件中,并已为 S3 存储桶本身 关闭 "block all public access",但似乎我缺少更多?
iamRoleStatements:
- Effect: Allow
Action:
- s3:ListBucket
Resource: "arn:aws:s3:::mybucket"
好吧,AWS 的 S3 方法是异步的,所以我需要它 return 一个承诺:
.
.
.
const result = await s3.listObjectsV2(params).promise();
.
.
.
我似乎遇到了权限问题,找不到任何 SO 答案来解决这个问题。
我的 Lambda 函数很简单(注意——我使用 Babel 进行转译):
import AWS from "aws-sdk";
import { success, failure} from "./libs/response-lib";
export async function main(event, context, callback) {
const s3 = new AWS.S3();
const params = {
Bucket: "mybucket",
};
try {
const result = await s3.listObjectsV2(params);
return success(result);
}
catch(e) {
return failure({ status: false, message: e })
}
}
当我使用无服务器部署并命中它给我的端点时,我收到了 500 错误。
我已将其包含在我的 serverless.yml
文件中,并已为 S3 存储桶本身 关闭 "block all public access",但似乎我缺少更多?
iamRoleStatements:
- Effect: Allow
Action:
- s3:ListBucket
Resource: "arn:aws:s3:::mybucket"
好吧,AWS 的 S3 方法是异步的,所以我需要它 return 一个承诺:
.
.
.
const result = await s3.listObjectsV2(params).promise();
.
.
.