云对象存储S3:AccessDenied从特定服务器调用GetObject操作时出错

时间:2017-06-21 17:53:35

标签: python-2.7 amazon-s3 boto3 aws-cli object-storage

我正在尝试从IBM Cloud Object Storage上的S3存储桶中获取文档,并且我得到访问被拒绝错误。我能够使用相同的凭据将对象成功上传到同一个存储桶。当我尝试仅从某些特定服务器下载对象时,我也收到此错误。 COS是否有限制不允许来自特定服务器/域的读取访问? 我尝试使用aws cli命令以及python boto3库获取文档,行为也一样。

错误: "调用GetObject操作时发生错误(AccessDenied):访问被拒绝"

更新

  • 我在Mac OSX(10.11.6)上使用相同的Bucket和Key组合尝试了相同的boto3模块,它运行正常。
  • 我正在RHEL 6.8服务器上尝试我的代码,它会中断大于100MB的文件。 (这有python 2.7和2.6,我已经尝试过两种方式)
  • 因此,即使决定使用AWS CLI命令下载文件,它也会下载2MB,并提供(AccessDenied)消息。
  • 所以我继续检查NodeJS(aws-sdk)模块是否可以解决问题,令我惊讶的是,每次RHEL 6和Mac OSX上的S3对象下载都能很好地完成。因此NodeJS aws-sdk S3模块能够处理RHEL 6上的大量下载。

所以现在我不确定在RHEL 6服务器的情况下AWS CLI和boto3(基于python的应用程序/模块的S3)有什么问题。我提到的相同代码适用于Mac OSX和Python 2.7。

使用的AWS CLI命令:

aws --endpoint-url=http://s3-api.us-geo.objectstorage.xxxx.net s3 cp  s3://bucketname/filename.tar.gz ./

0 个答案:

没有答案