2

我开发了一个 Django 应用程序,我使用 VM 的磁盘来保存和提供媒体和静态文件,但在我的一个模型中,我想将我的文件保存在连接到我的 MinIO 对象存储的 FileField 中。我在settings.py

AWS_ACCESS_KEY_ID = '###'
AWS_SECRET_ACCESS_KEY = '###'
AWS_S3_ENDPOINT_URL = '###'

在我的模型中,我像这样使用 S3Storage:

class CustomStorageBucket(S3Boto3Storage):
    bucket_name = "files"

class Document(BaseModel):
    document_file = models.ImageField(storage=CustomStorageBucket(),upload_to='documents')

使用这些代码,我可以将文件保存到存储中,但管理面板中的 URL 无法正常工作,因为它指向媒体文件 URL,如下所示:

http://localhost:8000/media/documents/file.jpg

但我希望它是这样的(预签名 URL):

https://object-storage.app/files/documents/file.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=XXX&X-Amz-Date=XXX&X-Amz-Expires=432000&X-Amz-SignedHeaders=host&X-Amz-Signature=XXX
4

1 回答 1

0

尝试设置MEDIA_URL变量

MEDIA_URL = 'https://object-storage.app/files/'
于 2021-12-27T08:42:07.213 回答