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 に答える