从Tensorflow访问S3的问题

时间:2018-11-09 00:55:33

标签: tensorflow amazon-s3

使用以下配置。

os.environ['AWS_ACCESS_KEY_ID'] = 'xxxxxx'
os.environ['AWS_SECRET_ACCESS_KEY'] = 'xxxxxxxx'
os.environ['AWS_REGION'] = 'us-west-2'
os.environ['S3_ENDPOINT'] = 's3-us-west-2.amazonaws.com'
os.environ['S3_USE_HTTPS'] = '1'                          
os.environ['S3_VERIFY_SSL'] = '1' 

print(file_io.stat('s3://abcd/def.txt')) 

我收到错误

  stat(文件名)中的

/usr/local/lib/python3.6/dist-packages/tensorflow/python/lib/io/file_io.py       556错误,raise_exception_on_not_ok_status()为状态:       557 pywrap_tensorflow.Stat(compat.as_bytes(filename),file_statistics,status)   -> 558返回file_statistics       559       560

     

/usr/local/lib/python3.6/dist-packages/tensorflow/python/framework/errors_impl.py in __exit __(self,type_arg,value_arg,traceback_arg)       526无,无,       (527)第527章   -> 528 c_api.TF_GetCode(self.status.status))
      529#从内存中删除基础状态对象,否则它保持活动状态
      530#因为从回溯中引用了此状态,原因是

     

NotFoundError:对象s3://abcd/def.txt不存在

请注意该文件确实存在。

我在写入和关闭时也遇到以下错误。

  

UnknownError:PermanentRedirect:无法解析ExceptionName:PermanentRedirect消息:您尝试访问的存储桶必须使用指定的端点进行寻址。请将来发送所有请求到该端点。

还需要解决什么?

2 个答案:

答案 0 :(得分:1)

这是我的配置的样子:

import os
os.environ['AWS_REGION'] = 'us-west-2'
os.environ['S3_ENDPOINT'] = 'https://s3-us-west-2.amazonaws.com'
os.environ['S3_VERIFY_SSL'] = '0' 

我认为你必须改变

os.environ['S3_ENDPOINT'] = 's3-us-west-2.amazonaws.com'

os.environ['S3_ENDPOINT'] = 'https://s3-us-west-2.amazonaws.com'

这里有 a link 供您参考。

答案 1 :(得分:0)

您可以使用端点  mybucket.s3-us-west-2.amazonaws.com

然后使用s3:// pathtofile访问