たとえば、リソースリンクを指定します。
http://www.google.com/images/srpr/logo3w.png
そのpngをS3に直接ダウンロードする方法はありますか(できればBotoを使用して)?もしそうなら、これはどのように行われますか?
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
「S3 へのダウンロード」は暗黙のうちに「ダウンロードしてから S3 にアップロードする」ことを意味します。アップロードを手動で行うか、boto のようなスクリプトやライブラリを使用するかは関係ありません。
スクリプトまたはライブラリ (boto) を使用する場合、イメージが実行されているシステム (ローカル ワークステーションまたはサーバー) に接続されたファイル システムにイメージをダウンロードし、AWS キーとライブラリを使用して S3 にアップロードします。