gpt4 book ai didi

python - Tensorflow - S3 对象不存在

转载 作者:太空宇宙 更新时间:2023-11-04 01:57:19 25 4
gpt4 key购买 nike

如何为 Tensorflow 设置直接私有(private)存储桶访问?

运行后
从 tensorflow.python.lib.io 导入 file_io并运行 print file_io.stat('s3://my/private/bucket/file.json') 我最终遇到错误 -
NotFoundError:对象 s3://my/private/bucket/file.json 不存在

但是,公共(public)对象上的同一行没有错误:
print file_io.stat('s3://ryft-public-sample-data/wikipedia-20150518.bin')

这里似乎有一篇关于支持的文章:https://github.com/tensorflow/examples/blob/master/community/en/docs/deploy/s3.md
但是,在导出显示的变量后,我最终遇到了同样的错误。

我已使用所有凭据设置 awscli,boto3 可以查看和下载相关文件。我想知道如何让 Tensorflow 在存储桶私有(private)时直接访问 S3。

最佳答案

尝试从 Sagemaker 笔记本访问私有(private) S3 存储桶中的文件时,我遇到了同样的问题。我犯的错误是尝试使用我从 boto3 获得的凭据,这些凭据在外部似乎无效。

解决方案不是指定凭据(在这种情况下它使用附加到机器的角色),而是仅指定区域名称(由于某种原因它没有从 ~/.aws/读取它配置文件)如下:

import boto3
import os

session = boto3.Session()
os.environ['AWS_REGION']=session.region_name

注意:当调试这个错误时,查看 CloudWatch 日志很有用,因为 S3 客户端的日志只打印在那里,而不是在 Jupyter notebook 中。在那里我第一次看到:

  1. 当我从 boto3 指定凭据时,错误是:您提供的 AWS 访问 key ID 在我们的记录中不存在。
  2. 在没有 AWS_REGION env 变量集的情况下访问时,我有 您尝试访问的存储桶必须使用指定的端点进行寻址。请将所有 future 的请求发送到此端点。 这在您未指定存储桶时显然很常见(请参阅 301 Moved Permanently after S3 uploading )

关于python - Tensorflow - S3 对象不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56531195/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com