2013-02-24 159 views
3

給定的資源鏈接,例如:直接下載文件到S3

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

有沒有一種方法來下載直接巴紐S3(最好使用寶途)?如果是這樣,這將如何完成?

回答

5

任何'下載到S3'隱含意味着'下載,然後上傳到S3' - 無論您是手動上傳還是像boto這樣的腳本或庫都可以。

如果使用腳本或庫(boto),它會將映像下載到與其運行的系統(本地工作站或服務器)相連的文件系統,然後使用AWS密鑰和庫上載它到S3。

7

您可以使用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 install urllib2_file 
pip install boto