Как работать с хранилищем 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