我试过这个:
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'})
但是当我尝试访问签名的网址时,我收到了以下消息:
我们计算的请求签名与您提供的签名不符。检查您的密钥和签名方法。
如果我删除headers
属性,另一方面我可以正常访问图像。我做错了什么?
答案 0 :(得分: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'
})