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

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

  • Key.set_contents_from_string()
  • Key.set_contents_from_file()
  • Key.set_contents_from_filename()
  • Key.set_contents_from_stream()

是否有boto 3等效物?将数据保存到存储在S3上的对象的boto3方法是什么

在BOTO3中,“Key.set\u contents\u from\u”方法被替换为

  • Object.put()

  • Client.put_对象()

例如:

导入boto3
some_binary_data=b’这里有一些数据’
more_binary_data=b’这里我们有更多的数据’
#方法1:Object.put()
s3=boto3.resource(’s3’)
object=s3.object(’my\u bucket\u name’,’my/key/include/filename.txt’)
put(Body=一些二进制数据)
#方法2:Client.put\u对象()
client=boto3.client(’s3’)
client.put\u对象(Body=more\u binary\u data,Bucket=’my\u Bucket\u name’,Key=’my/Key/include/anotherfilename.txt’)

或者,二进制数据可以来自读取文件,如比较boto 2和boto 3的官方文件中所述:

存储数据

存储文件、流或字符串中的数据很容易:

#Boto 2.x
从boto.s3.key导入密钥
key=key('hello.txt')
key.set_contents_from_文件('/tmp/hello.txt'))
#博托3
s3.Object('mybucket','hello.txt').put(Body=open('/tmp/hello.txt','rb'))

发表评论