Инструкция по AWS S3 для чайников
Amazon S3 – это облачная платформа для хранения данных. В основном её используют для хранения картинок и видео-файлов.
Этот сервис бесплатен в течении 12 месяцев с момента первой регистрации. По истечении срока либо при превышении лимита вас настойчиво попросят начать платить за использование сервиса. Ознакомиться с тарифами можно по этой ссылке .
Итак, цель этой статьи провести быстрый экскурс, который поможет начать пользоваться S3 уже после прочтения.
Что будем делать:
- Поговорим о создании и настройке хранилища
- Настроим публичную ссылку для доступа к хранилищу
- Научимся работать с aws cli
Создание и настройка хранилища
Первым делом перейдём по ссылке и нажмём на большую оранжевую кнопку.
Эта кнопка перенаправит нас на страницу авторизации. Если у вас нет аккаунта, то нужно зарегистрироваться.
После того как аккаунт готов, выбираем пункт Root user и нажимаем кнопку Next. Вводим пароль и авторизуемся. Нас должно перекинуть на страницу управления хранилищем.
Не будем тянуть резину и сразу создадим новое хранилище. В этом нам поможет кнопка Create bucket .
Откроется страница создания бакета, где довольно много настроек. Расскажу о самых интересных.
AWS Region
Этот параметр даст возможность выбрать расположение сервера, который будет ближе всего для вас или для ваших клиентов. Это позволит ускорить передачу данных и уменьшить время ожидания, что очень важно.
Block Public Access settings for this bucket
Настройка для блокировки публичного доступа к вашему хранилищу. AWS рекомендует блокировать все доступы, чтобы сохранять безопасность для текущих и будущих хранилищ. Подробно можно почитать по этой ссылке .
Но мы все же откажемся от этих настроек и будет использовать политику доступа, с помощью которой можно задавать более гибкие параметры.
Bucket Versioning
Очень полезная функция, с помощью которой можно вернуть удаленные данные или откатить какие-либо изменения до нужного момента.
S3 будет хранить несколько версий файла. Например, при удалении на файл будет повешен ярлык, визуально он станет недоступен, но физически будет присутствовать. Таким образом его можно будет восстановить.
Tags
Теги нужны для маркировки хранилищ – это позволяет группировать их, контролировать доступ к объектам, ограничивать доступы для определенных групп лиц или наоборот и т.д.
Тег представляет собой ключ-значение: например, security=true. В этом случае для всех объектов, которые имеют такой же тег, будут применены определенные настройки. Но есть ограничение: на каждый объект можно добавлять до десяти тегов.
Пока что этой информации достаточно. Пролистаем страницу в самый низ и нажмем на кнопку Create bucket. Нас перенаправит на страницу со списком бакетов.
Но вы можете заметить, что доступы к новому бакету пока что не публичные. Их нужно настроить. Для этого перейдем в бакет и откроем табу Permissions .
В первую очередь нам нужно отключить дефолтную блокировку, о которой я писал выше. Она нам не понадобится, так как все доступы будем настраивать через Bucket policy
Жмём на кнопку Edit, снимаем все галочки, сохраняем изменения и переходим к пункту Bucket policy. Редактируем его.
В форму ввода параметров добавляем вот такие настройки. Они дадут нам доступы как на получения данных из бакета, так и на создание и обновление. Не забудьте поменять имя бакета для значения в ключе Resource .
Также на этой странице присутствует кнопка генерации политики, можно воспользоваться ей, если вы хотите указать более специфичные параметры.
После сохранения настроек, если вернуться к началу страницы, мы увидим, что бакет стал публичным. Теперь мы можем создавать, обновлять и получать из него данные.
Предлагаю сразу залить какой-нибудь файл. S3 предлагает заливать всё в корень или же создавать папки, чтобы группировать объекты. Мы пока зальем в корень, нажав на кнопку Upload .
Я залил иконку Vue.js, она нам понадобится при проверке публичной ссылки.
Настройка публичной ссылки для доступа к хранилищу
После того как хранилище настроено, нужно каким-то образом получать оттуда данные. В этом нам поможет Amazon CloudFront – сервис безопасной доставки контента.
Откроем ссылку https://aws.amazon.com/ru/cloudfront
Нас снова будет приветствовать красивая страница с огромной оранжевой кнопкой. Нажмём на неё.
Откроется страница со списком доступных ссылок. Нужно создать новую. В этом нам поможет синяя кнопка Create Distribution .
Нажмём на поле Original Domain Name , и по идее должен выпасть список с доступными бакетами. Выбираем ранее созданный.
Этого достаточно, остальные настройки можно не указывать пока что.
Когда мы сохраним изменения, в списке доступных ссылок появится наша новая ссылка. Перейдем внутрь.
И единственное, что нам там понадобится – это публичная ссылка. Через неё мы и будем получать картинки или любые другие объекты из бакета.
Идём проверять. В поисковую строку браузера вставляем ссылку, плюс добавляем туда путь к нашему ранее добавленному файлу.
Ну вот и всё. У вас теперь есть ссылка, которую можно вставлять на сайт, в соцсети или в любые другие места.
Несомненно, можно было использовать прямую ссылку из бакета на файл, но это небезопасно.
Amazon CloudFront имеет кучу настроек, которые позволяют обеспечить безопасную передачу данных.
Разбираемся с AWS CLI
AWS CLI – это консольная утилита, которая позволяет работать с Amazon s3 через терминал.
Установка
Ссылка на официальную документацию https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html
В зависимости от вашей операционной системы нужно выбрать способ установки. У меня Linux, поэтому покажу на примере него.
Команда для установки пакета
После завершения установки aws будет готов к работе. Чтобы это проверить, введите в консоли
Там должно появиться целое полотно с описанием, со списком доступных опций и т.д.
Настройка
Настройка, как и установка, очень проста, всё делается одной командой.
aws попросит добавить ключи, указать регион и формат данных, который будем получать в ответ на команды .
Название региона смотрим тут
Ключи можно найти на специальной странице.
На этой странице располагается вся секретная информация, связанная с вашим аккаунтом.
Сейчас нам нужны два ключа, их можно найти во вкладке Access keys (assess key ID and secret assecc key) .
В появившемся окне копируем оба ключа и указываем их в настройках aws. По идее всё, этого достаточно. Переходим к командам.
Команды
- Узнать какие файлы и папки есть в s3
- Загрузить папку
- Переименовать папку путем перемещения файлов в новую
- Загрузить файл в папку
- Удалить файл
- Обновить список файлов
Этих команд достаточно для взаимодействия с S3 . Дополнительно можно почитать тут .
Заключение
Цель этой статьи – рассказать о самых важных моментах, которые помогут быстро разобраться и сразу же начать работать с Amazon S3 .
Всю остальную информацию можно найти в официальной документации .
Спасибо!