我收到試圖訪問我的文件一個在S3上如果出現以下錯誤:我們計算出你所提供的簽名不匹配的請求籤名 - AWS
<Error>
<Code>SignatureDoesNotMatch</Code>
<Message>
The request signature we calculated does not match the signature you provided. Check your key and signing method.
</Message>
</Error>
圖像通常顯示在我的網站,但通過我的API訪問它給了我上面的錯誤。任何想法爲什麼會發生?
S3設置:
AWS_ACCESS_KEY_ID = 'key here'
AWS_SECRET_ACCESS_KEY = 'key here'
AWS_STORAGE_BUCKET_NAME = 'bucket name'
AWS_CLOUDFRONT_DOMAIN = 'something.cloudfront.net'
STATICFILES_STORAGE = 'oby.s3utils.StaticRootS3BotoStorage'
STATIC_S3_PATH = 'media/'
DEFAULT_FILE_STORAGE = 'oby.s3utils.MediaRootS3BotoStorage'
DEFAULT_S3_PATH = 'static/'
S3_URL = '//{}.s3.amazonaws.com/'.format(AWS_STORAGE_BUCKET_NAME)
MEDIA_ROOT = 'this is fine'
STATIC_ROOT = 'this is fine'
MEDIA_URL = '//{}/{}'.format(AWS_CLOUDFRONT_DOMAIN, STATIC_S3_PATH)
STATIC_URL = '//{}/{}'.format(AWS_CLOUDFRONT_DOMAIN, DEFAULT_S3_PATH)
AWS_PRELOAD_METADATA = False
預先感謝您的任何和所有幫助!
這是什麼意思「通過我的API訪問它給了我上面的錯誤」?請爲您使用的網址提供示例。如果你枚舉你正在使用的庫,它也會很有幫助。 – matagus
@matagus我爲我的API使用Django Rest Framework。當我說我無法從我的API訪問它時,我的意思是它顯示圖像的S3 url。例如,該網址看起來像:'bucket.s3.amazonaws.com/s3/...'。當我去那個鏈接,我得到錯誤。但是,如果我訪問顯示圖像的網站上的頁面,則會顯示完美。那有意義嗎? – jape