6

给定一个资源链接,例如:

http://www.google.com/images/srpr/logo3w.png

有没有办法将该 png 直接下载到 S3(最好使用 Boto)?如果是这样,这将如何完成?

4

2 回答 2

10

您可以使用 urllib2 获取文件并使用响应对象使用 boto 将其写入 S3。

from boto.s3.connection import S3Connection
from boto.s3.key import Key
import urllib2

request = urllib2.Request('http://www.google.com/images/srpr/logo3w.png')
response = urllib2.urlopen(request)

conn = S3Connection("MYAWSID", "MYAWSSECRET")
bucket = conn.create_bucket('MyBucket')
k = Key(bucket)
k.name = "logo3w"
k.set_contents_from_string(response.read(), {'Content-Type': response.info().gettype()})

如果您没有这些软件包,您可以使用 PIP 从 PIP 安装它们

pip install urllib2_file
pip install boto
于 2013-03-10T18:31:48.450 回答
8

任何“下载到 S3”都隐含地表示“下载然后上传到 S3”——无论您是手动上传还是像 boto 这样的脚本或库都会这样做。

如果使用脚本或库(boto),它会将图像下载到附加到它正在运行的系统的文件系统 - 您的本地工作站或服务器 - 然后使用 AWS 密钥和库将其上传到 S3。

于 2013-02-24T08:48:03.047 回答