3

I developed a Django app that I'm using VM's disk for saving and serving media and static files but in one of my models, I want to save my files in a FileField connected to my MinIO object storage. I set up the settings like this in the settings.py

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

and in my model I used S3Storage like this:

class CustomStorageBucket(S3Boto3Storage):
    bucket_name = "files"

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

with these codes, I can save my files into the storage but the URLs in the admin panel do not works properly because it points to the media files URL something like this :

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

but I want it to be like this ( presigned 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
Omid Roshani
  • 1,083
  • 4
  • 15

1 Answers1

-1

Try to set MEDIA_URL variable

MEDIA_URL = 'https://object-storage.app/files/'
Yevhen Bondar
  • 4,357
  • 1
  • 11
  • 31