AWS s3(Simple Storage Service) - NurOrNuLL/ESDP-AP-5-6-TEAM-2 GitHub Wiki
AWS s3(Simple Storage Service)
Описание
Amazon Simple Storage Service — онлайн веб-служба, предлагаемая Amazon Web Services, предоставляет возможность хранения и получения любого объёма данных в любое время из любой точки сети, так называемый файловый хостинг.
Установка
-
Перед установкой надо зарегистрироваться как root на https://aws.amazon.com/ru/
-
Для интеграции в pycharm надо установить пакеты:
- boto3
- django-storages
Создание пользователя
Прежде чем мы перейдем к Django, давайте настроим S3. Нам нужно будет создать пользователя, который будет иметь доступ к управлению нашими ресурсами S3.
Войдите на веб-страницу AWS, найдите IAM в списке служб, он указан в разделе «Security, Identity & Compliance (Безопасность, идентификация и соответствие)»:
Перейдите на вкладку «Пользователи» и нажмите кнопку «Добавить пользователя»:
Добавьте имя пользователя и выберите опцию программного доступа:
Нажмите Далее, чтобы перейти к разрешениям. На этом этапе нам нужно создать новую группу с правами доступа S3 и добавить в нее нового пользователя. Следуйте указаниям мастера и нажмите кнопку «Создать группу»:
Определите имя для группы и найдите встроенную политику AmazonS3FullAccess:
Нажмите в группе «Создать», чтобы завершить процесс создания группы, на следующем экране, недавно созданная группа будет отображаться выбранной, сохраните ее и, наконец, нажмите кнопку «Далее: теги»:
Если хотите можете добавить теги(любые) или пропустить:
Нажмите кнопку далее:
Просмотрите информацию, если все правильно, перейдите к созданию нового пользователя. Далее вы должны увидеть эту информацию:
- Запишите всю информацию: пользователь, идентификатор ключа доступа и секретный ключ доступа.
- Сохраните их на потом.
- Нажмите на кнопку Закрыть, и давайте продолжим.
- Теперь пришло время создать нашу первую «корзину».
Создание корзины(серевер s3):
Корзина (bucket) — это то, что мы называем контейнером хранения в S3. Мы можем работать с несколькими сегментами в рамках одного проекта Django. Но, по большей части, вам понадобится только одна корзина на сайт.
Нажмите в меню «Сервисы» и найдите S3. Он расположен под хранилищем. Если вы видите экран ниже, вы находитесь в правильном месте.
Нажмите на + Создать корзину, чтобы начать поток. Установите DNS-совместимое имя для вашей корзины. Оно будет использоваться для идентификации ваших активов. В моем случае я выбираю test.aspar. Таким образом, путь к моим ресурсам будет примерно таким: https://test.aspar.s3.amazonaws.com/static/.
-
Выберите близкий вам регион
-
Нажмите создать корзину
Интеграция в pycharm
Самый простой способ - установить библиотеки с помощью pip:
pip install boto3
pip install django-storages
Теперь добавьте storages к вашему INSTALLED_APPS внутри модуля settings.py:
INSTALLED_APPS = [
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'storages',
]
Это простейший вариант использования. Он работает "из коробки" с минимальной конфигурацией. Вся конфигурация ниже идет внутри модуля settings.py:
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static/'),
]
AWS_ACCESS_KEY_ID = 'AKIA2M2OPPDRB7G7CJ7A'
AWS_SECRET_ACCESS_KEY = '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'
AWS_STORAGE_BUCKET_NAME = 'test.aspar'
AWS_S3_CUSTOM_DOMAIN = '%s.s3.amazonaws.com' % AWS_STORAGE_BUCKET_NAME
AWS_S3_OBJECT_PARAMETERS = {
'CacheControl': 'max-age=86400',
}
AWS_DEFAULT_ACL = 'public-read'
AWS_LOCATION = 'static'
STATICFILES_STORAGE = 'storages.backends.s3boto3.S3Boto3Storage'
STATIC_URL = "https://%s/%s/" % (AWS_S3_CUSTOM_DOMAIN, AWS_LOCATION)
DEFAULT_FILE_STORAGE = 'core.storage_backends.MediaStorage'
Даже если мы используем нашу локальную машину, нам нужно будет выполнить команду collectstatic, так как наш код будет ссылаться на удаленное местоположение:
python manage.py collectstatic
Если мы проверим на веб-сайте AWS, мы увидим наши статические активы там: