在Django的AWS S3设置中启用S3 Object Versioning。在S3存储桶中启用版本控制后,同一文件的多个版本将被跟踪并标记为唯一的对象。这将确保不同的对象URL分别由不同的版本生成,并且在缓存过期后,具有不同版本的相同对象将在每个请求中生成不同的URL。通过这种方式,即使AWS_QUERYSTRING_AUTH被设置为False,每个请求都将向S3存储桶获取一个新的对象URL,而不是从缓存中检索旧的。以下是示例代码:
AWS_S3_OBJECT_PARAMETERS = {
'CacheControl': 'max-age=86400',
}
AWS_S3_BUCKET_NAME = ''
AWS_S3_CUSTOM_DOMAIN = '%s.s3.amazonaws.com' % AWS_S3_BUCKET_NAME
AWS_S3_OBJECT_VERSIONING = True
AWS_QUERYSTRING_AUTH = False
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
请注意,示例代码中的AWS_S3_OBJECT_PARAMETERS是可选的,仅用于设置缓存控制标头。AWS_S3_CUSTOM_DOMAIN参数应替换为您的S3存储桶名称。