相关疑难解决方法(0)

如何使用boto3将S3对象保存到文件

我正在尝试用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功能可以执行相同的任务?

python boto amazon-web-services boto3

114
推荐指数
6
解决办法
12万
查看次数

标签 统计

amazon-web-services ×1

boto ×1

boto3 ×1

python ×1