Django Rest Framework — это полноценная веб-инфраструктура для разработки RESTful API на Python.

Amazon Web Services, широко известная как AWS, является дочерней компанией Amazon, которая предоставляет платформы облачных вычислений и API-интерфейсы по требованию для частных лиц, предприятий и правительств с оплатой за просмотр. 'использовать. Он предлагает множество услуг, таких как сервис Amazon Simple Storage (Amazon S3).

Amazon S3 можно использовать для медиафайлов и статических файлов в API DRF.

Во-первых, давайте инициализируем проект drf.

$ pip install djangorestframework

Добавьте «rest_framework» в параметр INSTALLED_APPS.

INSTALLED_APPS = [
…
'rest_framework',
]

Задайте корневой путь носителя в settings.py:

MEDIA_ROOT = os.path.join(BASE_DIR, ‘path/to/store/my/files/’)

Войдите в свою учетную запись AWS и создайте новую корзину на панели управления сервисом Amazon S3.

Создайте новые учетные данные на панели «Управление учетными данными и доступом».

Добавьте учетные данные AWS в settings.py:

AWS_ACCESS_KEY_ID = 'YOUR_ACCESS_KEY_HERE'
AWS_SECRET_ACCESS_KEY = 'YOUR_SECRET_ACCESS_KEY_HERE'

Замените значения своими учетными данными.

Нам нужно установить пакеты django-storages и boto3.

$ pip install boto3
$ pip install django-storages

django-storages — это проект по предоставлению различных серверных хранилищ в одной библиотеке и здесь для использования функциональности Amazon S3. AWS SDK для Python (Boto3) предоставляет Python API для сервисов инфраструктуры AWS.

Конфигурации должны выглядеть так:

AWS_ACCESS_KEY_ID = os.environ['AWS_ACCESS_KEY_ID']
AWS_SECRET_ACCESS_KEY = os.environ['AWS_SECRET_ACCESS_KEY']
AWS_STORAGE_BUCKET_NAME = os.environ['AWS_STORAGE_BUCKET_NAME']

# Your app endpoint
AWS_S3_ENDPOINT_URL = os.environ.get('AWS_S3_ENDPOINT_URL')
# Only public read for now
AWS_QUERYSTRING_AUTH = False
AWS_DEFAULT_ACL='public-read'