在存储桶之间复制对象时出现AWS S3权限错误



我已经编写了一个AWS Lambda函数,使用BOTO3-lib将对象从S3存储桶中的一个文件夹复制到另一个文件夹。本地逻辑运行良好,但在部署到lambda后,出现权限错误。

我在代码中使用的S3函数:

  1. boto3.resources((-获取s3对象
  2. s3.Object((-获取存储在s3中的文件
  3. .get((['Body'].read((-读取存储的文件的内容
  4. .copy(copy_source,destination_key(-从一个文件夹复制数据至同一S3铲斗中的另一个

IAM授予lambda的权限:

  1. "s3:PutObject">

  2. "s3:GetObject",

  3. "s3:ListBucket">

但仍然没有运气。有人能告诉我,为了我的目的,我还需要授予Lambda哪些其他权限才能访问S3吗?PS:尝试查看IAM操作列表,但找不到丢失的操作。

Lambda函数的超时时间对于正在进行的S3调用的持续时间来说太低。

此外,如果您只想将S3对象从S3复制到S3,那么通常不需要下载S3对象。您正在下载对象,这增加了您的超时问题。只需使用客户端级别的copy_object函数。

最新更新