Пользовательское хранилище S3Boto3Storage с помощью django-storages
Я разработал приложение Django, в котором я использую диск VM для сохранения и обслуживания медиа и статических файлов, но в одной из моих моделей я хочу сохранить файлы в FileField, подключенном к моему объектному хранилищу MinIO. Я установил такие настройки в 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
Попытка установить переменную MEDIA_URL
MEDIA_URL = 'https://object-storage.app/files/'