Использование 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. Удаление контейнера (пустого) из хранилища:

./s3curl.pl --id=<name> --delete -- https://1cloud.store:443/<имя_контейнера> Пример: ./s3curl.pl --id=cloud --delete -- https://1cloud.store:443/test-bucket

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

./s3curl.pl --id=<name> -- https://1cloud.store:443/<имя_контейнера> Пример: ./s3curl.pl --id=cloud -- https://1cloud.store:443/test-bucket

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

./s3curl.pl --id=<name> --createBucket -- https://1cloud.store:443/<имя_контейнера> Пример: ./s3curl.pl --id=cloud --createBucket -- https://1cloud.store:443/test-bucket

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

./s3curl.pl -id=<name> --createBucket -- -H 'x-amz-acl: public-read' "https://1cloud.store:443/<имя_контейнера>" Пример: ./s3curl.pl --id=cloud --createBucket -- -H 'x-amz-acl: public-read' https://1cloud.store:443/pub

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

./s3curl.pl --id=<name> -- https://1cloud.store:443/<имя_контейнера>/<имя_объекта> Пример: ./s3curl.pl --id=cloud -- https://1cloud.store:443/test-bucket/AUTHORS

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

./s3curl.pl --id=<name> --head -- https://1cloud.store:443/<имя_контейнера>/<имя_объекта> Пример: ./s3curl.pl --id=cloud --head -- https://1cloud.store:443/test-bucket/AUTHORS

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

./s3curl.pl --id=<name> --put=<имя_объекта> -- https://1cloud.store:443/<имя_контейнера>/<имя_объекта_в_хранилище> Пример: ./s3curl.pl --id=cloud --put=/root/s3-curl/s3curl.pl -- https://1cloud.store:443/tt-bucket/s3curl-script.pl

Средняя оценка: 5,0, всего оценок: 1