我编写了一个 python 脚本来处理非常大的文件(总共几 TB),我将在 EC2 实例上运行该脚本。之后,我想将处理后的文件存储在 S3 存储桶中。目前,我的脚本首先将数据保存到磁盘,然后将其上传到S3。不幸的是,考虑到等待实例首先写入磁盘然后上传需要花费额外的时间,这将是相当昂贵的。
有没有办法使用boto3将文件直接写入S3存储桶?
编辑:为了澄清我的问题,我问内存中是否有一个对象,将该对象直接写入 S3,而不先将该对象保存到磁盘上。
您可以使用放置对象 https://boto3.readthedocs.io/en/latest/reference/services/s3.html#S3.Client.put_object为了这。只需将文件对象作为正文传递即可。
例如:
import boto3
client = boto3.client('s3')
response = client.put_object(
Bucket='your-s3-bucket-name',
Body='bytes or seekable file-like object',
Key='Object key for which the PUT operation was initiated'
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)