Amazon S3 访问仅在 CopyObject 中被拒绝

Posted

技术标签:

【中文标题】Amazon S3 访问仅在 CopyObject 中被拒绝【英文标题】:Amazon S3 Access Denied only in CopyObject 【发布时间】:2016-10-08 02:55:52 【问题描述】:

我正在从 nodejs 脚本上传文件,当我尝试复制对象时,我收到拒绝访问错误,如果我尝试删除或获取对象 - 没有问题并且成功。

CopyObject 中有什么空间吗?

params = 
     "Bucket": "buacket-name",
     "CopySource": "source-path/object.txt",
     "Key": "source-path/object2.txt"
;

s3.copyObject(params, function(err, data)); // With a function for success or error.

谢谢。

【问题讨论】:

【参考方案1】:

解决它!问题出在我的 CopySource 路径中,它需要像这样使用存储桶名称:backet-name/objectkey

【讨论】:

同样,我认为政策中缺少某些内容。【参考方案2】:

根据 AWS S3 copyObject docs,CopySource 参数应包括存储桶和密钥名称。例如:

var params = 
  CopySource: 'source_bucket/source_key',
  Bucket: 'destination_bucket_name',
  Key: 'destination_key'
;

s3.copyObject(params, function(error, data) 

  // error check
  if (error) 
    console.log(error, error.stack);
  

  console.log('S3 object copied');
);

【讨论】:

以上是关于Amazon S3 访问仅在 CopyObject 中被拒绝的主要内容,如果未能解决你的问题,请参考以下文章

s3-amazon 图像 CORS 问题(仅在 5-8 小时后发生在少数浏览器中)

Amazon S3 CORS 标头仅在 OPTIONS(预检)期间显示,而不在 GET 请求期间显示

访问我在 Amazon 中的 S3 存储桶

如何通过http访问amazon s3

如何使用 getSignedUrl 操作从 Amazon s3 访问对象

从多个进程访问 Amazon S3 文件