尝试访问S3上的某个文件时收到以下错误:
<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
提前感谢您提供任何帮助!
答案 0 :(得分:1)
可能有很多原因。一个常见问题是客户端上的系统时间。如果距离“真实”的距离太远时间,可能会发生此错误。