2013-05-07 9 views
8

私はこの試みられてきた:ダウンロードをトリガーするS3の署名付きURLを生成するためにbotoを取得するにはどうすればよいですか?

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' 
    }) 
関連する問題