Как создать постоянный url для частного ведра s3 с помощью django rest framework

models.py


def upload_org_logo(instance, filename):
    ts = calendar.timegm(time.gmtime())
    filepath = f"Timesheet/org_logo/{ts}"
    if instance:
        base, extension = os.path.splitext(filename.lower())
        filepath = f"Timesheet/org_logo/{instance.org_id}/{instance.org_name}{extension}"
    return filepath

class Organisation(models.Model):
    """
    Organisation model
    """
    org_id = models.CharField(max_length=50,default=uuid.uuid4, editable=False, unique=True, primary_key=True)
    org_name = models.CharField(unique=True,max_length=100)
    org_code = models.CharField(unique=True,max_length=20)
    org_mail_id = models.EmailField(max_length=100)
    org_phone_number = models.CharField(max_length=20)
    org_address = models.JSONField(max_length=500, null=True)
    product = models.ManyToManyField(Product, related_name='products')
    org_logo = models.ImageField(upload_to=upload_org_logo, null=True, blank=True,)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)

Я сохраняю логотип Org_logo в частном ведре s3, мне нужно получить изображение из ведра s3, используя заданный url. Я проверил некоторые решения, но я не уверен, как использовать это конкретно где, например, в моделях или представлениях или других?

Можете ли вы, пожалуйста, помочь мне, как использовать его и где использовать, основываясь на моем приведенном выше коде.

AWS Settings.py

AWS_ACCESS_KEY_ID = ''
AWS_SECRET_ACCESS_KEY = ''
AWS_STORAGE_BUCKET_NAME = ''
AWS_QUERYSTRING_AUTH = True

AWS_S3_FILE_OVERWRITE = True



AWS_S3_OBJECT_PARAMETERS = {
    'CacheControl': 'max-age=86400',
}

AWS_S3_SIGNATURE_VERSION = 's3v4'
AWS_S3_REGION_NAME = ''
AWS_DEFAULT_ACL = None
AWS_S3_VERIFY = True
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
Вернуться на верх