python - 如何使用 boto3 在 Python 中获取 S3 目录作为 os.path?

标签 python amazon-web-services amazon-s3 keras boto3

在Python中,我们通常处理这样的目录:

MODEL_DIR = os.path.join(ROOT_DIR, "logs")

但是,假设我在 S3 存储桶内有相同的日志目录,我该如何使用 boto3 将 S3 上的路径获取为 str

用例:

我正在编写一个 AWS Lambda 函数,该函数将权重从 s3 存储桶加载到 Keras 模型以返回预测。

最佳答案

如果 Keras 直接支持 S3,请阅读 Keras 文档并按照其说明进行操作。

如果Keras支持从内存加载模型数据,则将文件从S3读取到内存中并从那里加载模型数据。例如:

import boto3
s3 = boto3.client('s3')
obj = s3.get_object(Bucket='mybucket', Key='data/input.csv')
contents = obj['Body'].read()
# model = load_model(contents)

如果 Keras 需要本地文件,则将文件从 S3 下载到 Lambda 中的/tmp,然后从那里加载模型数据。例如:

import boto3
s3 = boto3.resource('s3')
s3.meta.client.download_file('mybucket', 'data/input.csv', '/tmp/input.csv')
# model = load_model('/tmp/input.csv')

我怀疑后者是您所需要的,要加载多个文件,只需将每个文件从 S3 下载到/tmp,然后从/tmp 加载模型。

关于python - 如何使用 boto3 在 Python 中获取 S3 目录作为 os.path?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51911088/

相关文章:

amazon-web-services - 具有相互身份验证的 AWS 安全 REST API

javascript - 使用 javascript sdk 的亚马逊 s3 上传无法正常工作

javascript - Three.js Maya导出错误

python - 如何使用 Selenium 自动化网页按钮控制?

php - 如何使用 PHP 在我的安全站点上显示 protected Amazon S3 图像?

python - Django:允许从 S3 下载各种媒体文件而无需创建模型(同时隐藏 s3 存储)

python - PyParsing OR 语句

python - PyQt5 :How to communicate between two subwindows?

python - 如何使用 PIL (pillow) 以 PDF 格式保存图像列表?

amazon-web-services - AWS CLI : Could not connect to the endpoint URL