Install django-storages
:
pip install django-storages
Add to settings:
INSTALLED_APPS = (
...
'storages',
...
)
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
Add to private settings:
# Note that you need to make the S3 bucket first.
AWS_STORAGE_BUCKET_NAME = '<bucket_name>'
AWS_ACCESS_KEY_ID = '<key>'
AWS_SECRET_ACCESS_KEY = '<secret>'
Add to model:
def upload_name(instance, filename):
# see https://docs.djangoproject.com/en/2.0/ref/models/fields/#django.db.models.FileField.upload_to
# return path/to/desired/filename
pass
some_file = models.FileField(max_length=1000, upload_to=upload_name)