我们计算的请求签名与您提供的签名(AWS)不匹配

时间:2015-10-17 21:45:10

标签: django amazon-web-services amazon-s3 django-rest-framework

尝试访问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

提前感谢您提供任何帮助!

1 个答案:

答案 0 :(得分:1)

可能有很多原因。一个常见问题是客户端上的系统时间。如果距离“真实”的距离太远时间,可能会发生此错误。

相关问题