Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 云对象存储S3:从特定服务器调用GetObject操作时发生AccessDenied错误_Python 2.7_Amazon S3_Boto3_Aws Cli_Object Storage - Fatal编程技术网

Python 2.7 云对象存储S3:从特定服务器调用GetObject操作时发生AccessDenied错误

Python 2.7 云对象存储S3:从特定服务器调用GetObject操作时发生AccessDenied错误,python-2.7,amazon-s3,boto3,aws-cli,object-storage,Python 2.7,Amazon S3,Boto3,Aws Cli,Object Storage,我试图从IBM云对象存储上的S3存储桶中获取一个文档,但遇到了拒绝访问错误。我能够使用相同的凭据成功地将对象上载到同一个bucket。当我试图仅从某些特定服务器下载对象时,也会出现此错误。COS是否有任何限制,不允许从特定服务器/域进行读取访问? 我尝试了使用aws cli命令以及python boto3库获取文档,其行为是相同的 错误: “调用GetObject操作时发生错误(AccessDenied):拒绝访问” 更新: 我在MacOSX(10.11.6)上尝试了相同的boto3模块,使用

我试图从IBM云对象存储上的S3存储桶中获取一个文档,但遇到了拒绝访问错误。我能够使用相同的凭据成功地将对象上载到同一个bucket。当我试图仅从某些特定服务器下载对象时,也会出现此错误。COS是否有任何限制,不允许从特定服务器/域进行读取访问? 我尝试了使用aws cli命令以及python boto3库获取文档,其行为是相同的

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

更新:

  • 我在MacOSX(10.11.6)上尝试了相同的boto3模块,使用相同的存储桶和按键组合,效果很好
  • 我在RHEL6.8服务器上尝试我的代码,当文件大于100MB时,代码会中断。(这两个版本都有Python2.7和2.6,我已经尝试过了)
  • 因此,即使决定使用AWS CLI命令下载该文件,它也只下载2MB,并给出(AccessDenied)消息
  • 所以我继续检查NodeJS(awsdk)模块是否可以实现一些功能,令我惊讶的是,它在RHEL6和MacOSX上的S3对象下载中每次都工作得非常好。因此,NodeJS aws sdk S3模块能够处理RHEL 6上的大量下载
所以现在我不确定RHEL6服务器的AWS CLI和boto3(基于python的S3应用程序/模块)有什么问题。我提到的代码在MacOSX和Python2.7上都可以使用

使用的AWS CLI命令:

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

你能详细说明一下你的设置吗?成功的环境和失败的环境有什么不同吗?”“拒绝访问”表示提供的凭据不正确或格式不正确。捕获一个示例请求(通过Wireshark或类似的实用程序)以验证发送的头是否是我们期望看到的头也会很有帮助。@NickLange感谢您的回复。我想分析头部和数据包,但我注意到RHEL6上基于Python的S3模块的奇怪行为。我已经更新了上面的细节。我将更新这个问题,并提供关于连接重置和正在使用的头的更多发现。只是想让你知道,我已经检查了对象的权限,它对我使用的访问id拥有完全控制权,因此这不是权限问题。有些Linux环境出现了一些问题,但这是一种非常奇怪的行为。出于好奇(这其实不重要),但该帐户是否具有bucket上的读取权限?实际上,最好的办法是获取一个捕获来检查标题,只是确保它没有默认为默认的AWS端点,或者找不到您的凭据。我会启动一个RHEL虚拟机并检查它。如果您通过电子邮件感到更舒服,可以通过nicholas.lange[在]ibm.com与我联系。@NickLange感谢您的调查,我会通过电子邮件与您联系。