Инструкция по установке, настройке и использованию 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. Создание объекта в контейнере хранилища:
Пример: