Django S3 上传的文件 url 显示凭据

Ali*_*cal 2 python django url amazon-s3 amazon-web-services

我正在使用django-storagesAmazon S3 进行文件存储。在我的模型中,我有: avatar = models.ImageField(_('Avatar'), upload_to='avatars/profiles/', blank=True, null=True)

图像已成功上传到save,但保存了带有凭据的完整 url。在我的检索请求中/当我通过控制台从数据库读取 url 时)我得到类似的信息:https : //subdomain.amazonaws.com/avatars/profiles/filename.jpg?X-Amz-Algorithm=XXX&X-Amz-Expires= XXX&X-Amz-SignedHeaders=XXXX&X-Amz-Signature=XXXX&X-Amz-Date=XXXXXX&X-Amz-Credential=XXXX

我怎样才能防止这种情况?我可以在响应之前删除 url,但我不需要,因此不想以这种格式保存它们,因为所有文件都可以公开访问,也不需要凭据。附言。我虽然使用post_save钩子,但对我来说似乎是一个黑客。

Vit*_*sta 5

要删除查询字符串中的身份验证凭据,请AWS_QUERYSTRING_AUTH = False在您的settings.py. 从https://django-storages.readthedocs.io/en/latest/backends/amazon-S3.html 上的django-storages文档:

AWS_QUERYSTRING_AUTH(可选;默认为True

设置AWS_QUERYSTRING_AUTHFalse从生成的 URL 中删除查询参数身份验证。如果您的 S3 存储桶是公共的,这会很有用。