Django REST Framework, настройка Django Хранилища / S3 Boto для хранения некоторых медиафайлов в корзину, а некоторых в локальное хранилище - PullRequest
0 голосов
/ 01 мая 2020

У меня есть настройки Django Хранилища / S3 Boto для сохранения загруженных пользователем файлов в корзину s3, с настройками ниже:

# AWS Bucket access keys
AWS_ACCESS_KEY_ID = 'id'
AWS_SECRET_ACCESS_KEY = 'key'

# AWS Bucket config stuff
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
AWS_STORAGE_BUCKET_NAME = 'bucketname'
AWS_S3_REGION_NAME = 'us-east-1'
AWS_S3_CUSTOM_DOMAIN = f'{AWS_STORAGE_BUCKET_NAME}.s3.amazonaws.com/'
AWS_S3_OBJECT_PARAMETERS = {'CacheControl': 'max-age=86400'}

# Media file location
MEDIA_URL = f'https://{AWS_S3_CUSTOM_DOMAIN}/'

Как мне изменить настройки хранилища / Конфигурация, чтобы я мог сохранять некоторые загруженные пользователем файлы в эту корзину S3, сохраняя некоторые другие в локальной файловой системе?

В настоящее время мой FileField выглядит следующим образом:

class File(models.Model):
    created_at = models.DateTimeField(auto_now_add=True)
    email = models.EmailField(default='email@email.com')
    file = models.FileField(upload_to=upload_path)

    def __str__(self):
        return self.email + '-' + self.file.name

мой "upload_path" выглядит так:

def upload_path(instance, filename):
    return instance.email + '/' + filename
...