2013-05-07 53 views
8

我已經嘗試這樣的:如何讓boto爲S3生成觸發下載的簽名URL?

connection = S3Connection(
    aws_access_key_id=settings.AWS_ACCESS_KEY_ID, 
    aws_secret_access_key=settings.AWS_SECRET_ACCESS_KEY) 

url = connection.generate_url(
    60, 
    'GET', 
    settings.AWS_STORAGE_BUCKET_NAME, 
    self.get_object().image, 
    headers={'Content-Type': 'application/octet-stream'}) 

但是當我嘗試訪問標識的URL我得到這個消息:

我們計算出你所提供的簽名不匹配的請求籤名。檢查你的密鑰和簽名方法。

如果我刪除headers屬性另一方面,我可以訪問圖像就好了。我究竟做錯了什麼?

回答

7

問題是,您無法使用generate_url設置任意標題,並且存在response_headers選項時,AWS的可用選項也有限。這將做到這種情況下的預期。

url = connection.generate_url(
    60, 
    'GET', 
    settings.AWS_STORAGE_BUCKET_NAME, 
    self.get_object().image, 
    response_headers={ 
     'response-content-type': 'application/octet-stream' 
    }) 
相關問題