8

我试过这个:

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另一方面,如果我删除该属性,则可以正常访问该图像。我究竟做错了什么?

4

1 回答 1

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'
    })
于 2013-12-24T12:48:32.003 回答