Как работать с хранилищем S3 в Linux на примере Ubuntu 16
Если у вас ещё нет хранилища S3, прочитайте статью: Как создать объектное хранилище S3
С помощью консоли ВМ устанавливаем пакеты pip и awscli (клиент для подключения к S3 хранилищу).
Для этого необходимо выполнить следующие команды:
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3 get-pip.py
pip install awscli
Далее необходимо настроить клиент awscli для подключения к нашему хранилищу. Для этого необходимо выполнить команду:
aws configure и ввести параметры из таблицы сгенерированные панелью управления при создании нашего хранилища:
- AWS Access Key ID - ввести "Ключ Доступа" из таблицы
- AWS Secret Access Key - ввести "Секретный Ключ" из таблицы
- Default region name [None] - EU
- Default output format - ничего не вводить
Далее для того, чтобы воспользоваться хранилищем и отправить на него файлы необходимо создать на нём файловую корзину, для этого необходимо выполнить команду:
aws s3api --endpoint-url <URL из таблицы> create-bucket --bucket <Название корзины> .
Пример:
aws s3api --endpoint-url https://s3.sbcloud.online create-bucket --bucket testbucket123
Файловая корзина успешно создана.
Теперь поместим в наше хранилище файл. Для этого создадим файл на нашей ВМ и затем отправим его в хранилище. Для этого необходимо выполнить следующие команды:
mkdir /media/data - создаем директорию на нашей ВМ, куда положим файл.
echo “TEST” >> /media/data/rw_test.txt - создаем текстовый файл rw-test.txt с содержанием TEST в созданной директории
aws s3api --endpoint-url <URL из таблицы> put-object --bucket <Название корзины> --key <Название файла> --body <Путь к файлу на ВМ>
Пример:
aws s3api --endpoint-url https://s3.sbcloud.online put-object --bucket testbucket123 --key testobject666.txt --body /media/data/ rw_test.txt - помещаем в хранилище наш файл задавая ему новое название testobject666.txt
Файл успешно отправлен в хранилище.
Теперь скачаем файл из хранилища и сохраним его на диске нашей ВМ. Для этого воспользуемся командой:
aws s3api --endpoint-url <URL из таблицы> get-object --bucket <Название корзины> --key <Название файла> <Директория в которую скачиваем файл>
Пример:
aws s3api --endpoint-url https://s3.sbcloud.online get-object --bucket testbucket123 --key testobject666.txt /media/data/file3.txt - скачиваем файл в созданную раннее директорию и называем его file3.txt
Для удаления файла из файловой корзины в нашем хранилище необходимо воспользоваться командой:
aws s3api --endpoint-url <URL из таблицы> delete-object --bucket <Название корзины> --key <Название файла>
Пример:
aws s3api --endpoint-url https://s3.sbcloud.online delete-object --bucket testbucket123 --key testobject666.txt
Для удаления файловой корзины из нашего хранилища необходимо воспользоваться командой:
aws s3api --endpoint-url <URL из таблицы> delete-bucket --bucket <Название корзины>
Пример:
aws s3api --endpoint-url https://s3.sbcloud.online delete-bucket --bucket testbucket123