2015-12-05 110 views
2

我可以在我的賬戶中爲我的賬戶創建一個s3簽名的url,我可以通過aws cli下載和上傳。aws s3通過wget簽署的網址

我創建了S3網址如下:

from boto.s3.connection import S3Connection 
key = os.environ['aws_access_key_id'] 
secret = os.environ['aws_secret_access_key'] 
c = S3Connection(key,secret,is_secure=False) 
bucket = c.get_bucket('my-bucket') 
bktkey = bucket.get_key('stuff.tar.gz') 
seconds=60*60*12 
url2 = bktkey.generate_url(expires_in=seconds) 
print '%s' %url2 

使用URL2和複製粘貼鉻它,我得到stuff.tar.gz下載

但是,當我使用wget,像這樣

wget <whatever is in url2> 

我得到異常以下,

HTTP request sent, awaiting response... 403 Forbidden 
2015-12-04 20:48:57 ERROR 403: Forbidden. 

有人能幫我理解爲什麼wget在chrome和firefox成功下載使用簽名的s3 url時失敗了嗎?

Regards

回答

10

我有同樣的問題。修復方法是使用引號:

wget -O test.tar.gz "https://bucket.s3.amazonaws.com/app1/10/10.2/test.tar.gz?Signature=hgbdhjJHGK&Expires=1454446963&AWSAccessKeyId=AAAAAAAAA"