Как добавить уникальное имя в FileField, который хранится в aws s3? - PullRequest
0 голосов
/ 20 января 2020

У меня проблема с s3. Когда другой пользователь загружает файл с тем же именем, старый удаляется и заменяется новым. Как я могу добавить уникальное имя в качестве имени файла?

Вот мои settings.py

AWS_ACCESS_KEY_ID = 'my access key'
AWS_SECRET_ACCESS_KEY = 'my secret key here'
AWS_STORAGE_BUCKET_NAME = 'my-media'
AWS_S3_CUSTOM_DOMAIN = '%s.s3.amazonaws.com' % AWS_STORAGE_BUCKET_NAME

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

DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'

models.py

from django.db import models

# Create your models here.


class Designer(models.Model):
    name = models.CharField(max_length=100, unique=True, blank=False,
                            help_text='Designer Unique Name')
    email = models.EmailField(max_length=100, blank=True)
    mobileNumber = models.CharField(max_length=15, blank=True)
    logo = models.FileField(blank=True) # How to add a unique name??

1 Ответ

1 голос
/ 20 января 2020

Переопределить метод save () модели. Проверьте, существует ли файл с таким же именем, если это так, вы можете добавить несколько случайных символов (или вы можете добавить имя пользователя, если хотите) к имени файла, чтобы сделать его уникальным и сохранить его таким образом. Это очень похоже на сохранение пули.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...