首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用boto3将文件或数据写入S3对象

如何使用boto3将文件或数据写入S3对象
EN

Stack Overflow用户
提问于 2016-10-31 13:13:45
回答 7查看 346.7K关注 0票数 149

在boto 2中,您可以使用以下方法写入S3对象:

有没有相当于boto 3的?将数据保存到存储在S3上的对象的boto3方法是什么?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2016-10-31 13:13:45

在boto 3中,'Key.set_contents_from_‘方法被替换为

例如:

代码语言:javascript
运行
复制
import boto3

some_binary_data = b'Here we have some data'
more_binary_data = b'Here we have some more data'

# Method 1: Object.put()
s3 = boto3.resource('s3')
object = s3.Object('my_bucket_name', 'my/key/including/filename.txt')
object.put(Body=some_binary_data)

# Method 2: Client.put_object()
client = boto3.client('s3')
client.put_object(Body=more_binary_data, Bucket='my_bucket_name', Key='my/key/including/anotherfilename.txt')

或者,二进制数据可以来自读取文件,如the official docs comparing boto 2 and boto 3中所述

存储数据

存储来自文件、流或字符串的数据很容易:boto2.x from boto.s3.key import Key key = Key('hello.txt') key.set_contents_from_file('/tmp/hello.txt') # Boto 3 s3.Object('mybucket','hello.txt').put(Body=open('/tmp/hello.txt','rb'))

票数 287
EN

Stack Overflow用户

发布于 2018-03-09 01:17:39

boto3也有一种直接上传文件的方法:

代码语言:javascript
运行
复制
s3 = boto3.resource('s3')    
s3.Bucket('bucketname').upload_file('/local/file/here.txt','folder/sub/path/to/s3key')

http://boto3.readthedocs.io/en/latest/reference/services/s3.html#S3.Bucket.upload_file

票数 76
EN

Stack Overflow用户

发布于 2019-01-20 08:08:35

在写入S3中的文件之前,您不再需要将内容转换为二进制。下面的示例在S3存储桶中创建一个包含字符串内容的新文本文件(名为newfile.txt):

代码语言:javascript
运行
复制
import boto3

s3 = boto3.resource(
    's3',
    region_name='us-east-1',
    aws_access_key_id=KEY_ID,
    aws_secret_access_key=ACCESS_KEY
)
content="String content to write to a new S3 file"
s3.Object('my-bucket-name', 'newfile.txt').put(Body=content)
票数 58
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40336918

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档