我正在尝试用AWS的新boto3客户端做一个"hello world" .
我使用的用例非常简单:从S3获取对象并将其保存到文件中.
在boto 2.XI会这样做:
import boto
key = boto.connect_s3().get_bucket('foo').get_key('foo')
key.get_contents_to_filename('/tmp/foo')
Run Code Online (Sandbox Code Playgroud)
在博托3.我找不到干净的方法来做同样的事情,所以我手动迭代"Streaming"对象:
import boto3
key = boto3.resource('s3').Object('fooo', 'docker/my-image.tar.gz').get()
with open('/tmp/my-image.tar.gz', 'w') as f:
chunk = key['Body'].read(1024*8)
while chunk:
f.write(chunk)
chunk = key['Body'].read(1024*8)
Run Code Online (Sandbox Code Playgroud)
要么
import boto3
key = boto3.resource('s3').Object('fooo', 'docker/my-image.tar.gz').get()
with open('/tmp/my-image.tar.gz', 'w') as f:
for chunk in iter(lambda: key['Body'].read(4096), b''):
f.write(chunk)
Run Code Online (Sandbox Code Playgroud)
它工作正常.我想知道是否有任何"本机"boto3功能可以执行相同的任务?