Использование swift3 и s3curl для работы с хранилищем в Linux

Инструкция по установке, настройке и использованию swift 3 и s3 curl для работы с объектным хранилищем.

Что это такое?

Swift 3 связующее ПО, которое эмулирует S3 REST API поверх хранилища объектов.

В настоящее время поддерживаются следующие операции:

  Метод Описание
1 DELETE Bucket Удаление контейнера из хранилища
2 GET Bucket (List Objects) Выводит содержимое контейнера
3 PUT Bucket Создание контейнера в хранилище
4 GET Object Вывести содержимое объекта
5 HEAD Object Вывести метаинформацию об объекте
6 PUT Object Создание объекта в контейнере хранилища
 

Установка и настройка

Загрузите архив s3 curl и распакуйте его:

cd ~
wget http://s3.amazonaws.com/doc/s3-example-code/s3-curl.zip
unzip s3-curl.zip

Для работы с данной утилитой должен быть установлен язык программирования perl:

apt-get install perl

Перейдите к конфигурации s3 curl:

cd ~/s3-curl
chmod 744 s3curl.pl

В файле s3curl.pl замените значение точки на 1cloud.store:

my @endpoints = ( '1cloud.store');

Создайте файл с идентификационными данными .s3curl, например с помощью редактора vi:

vi .s3curl

Добавьте следующее содержимое и сохраните изменения, значения AccsessKey и SecretKey возьмите из панели управления:

%awsSecretAccessKeys = (
# 1st account
name1 => {
id => 'AccsessKey',
key => 'SecretKey',
},
# 2nd account
name2 => {
id => 'AccsessKey',
key => 'SecretKey',
}
);

Примечание: имя переменной name1 и name2 можно выбрать любое.

Например:

%awsSecretAccessKeys = (
cloud => {
id => '11_admin',
key => 'iv93tKr2GUyB',
}
);

Для того чтобы perl мог прочитать содержимое файла, необходимо расширить права:

chmod 600 .s3curl

Операции

Примечание: при возникновении следующей ошибки: Can't locate Digest/HMAC_SHA1.pm in @INC (you may need to install the Digest::HMAC_SHA1 module), установите дополнительный модуль:

sudo apt-get install libdigest-hmac-perl

1. Удаление контейнера (пустого) из хранилища:

Пример:

2. Вывести список содержимого контейнера хранилища:

Пример:

3. Создание приватного контейнера в объектном хранилище:

Пример:

4. Создание публичного контейнера в объектном хранилище:

Пример:

5. Вывести содержимое объекта:

Пример:

6. Вывести метаинформацию объекта:

Пример:

7. Создание объекта в контейнере хранилища:

Пример:

Последнее обновление: 13.09.2022