Работа с хранилищем¶
Для работы с хранилищем S3 можно использовать любое программное обеспечение, поддерживающее протокол S3. Как правило, для настройки такого ПО необходимо указать Access key, Secret key, адрес storage-сервера и выбрать протокол подключения (HTTP или HTTPS).
Для получения полной документации о возможностях работы по протоколу S3 в сервисе Storage перейдите по ссылке. Протокол S3 первоначально был разработан для сервиса Amazon AWS S3.
Точки доступа¶
В настоящее время сервис Storage S3 поддерживает следующие типы точек доступа в каждой локации:
- Публичная точка доступа (HTTP и HTTPS):
s3.loc.icdc.io. - Внутренняя точка доступа (HTTP и HTTPS):
s3.local.loc.icdc.io. - Точка доступа DirectConnect может быть настроена по запросу через службу поддержки.
Внутренняя точка доступа может использоваться для доступа только из сетей аккаунта (например, с виртуальных машин Compute) к сервису S3 и не использует интернет-трафик, который может иметь ограничения по пропускной способности.
После создания бакет становится доступен через все точки доступа.
Использование внутренней точки доступа не ограничивает доступ к бакету через публичную точку доступа.
path-style access
На данный момент Storage поддерживает только path-style access, что означает доступ к корзинам (бакетам) по пути: s3.loc.icdc.io/<bucket>. Формат DNS-style access вида <bucket>.s3.loc.icdc.io на данный момент не поддерживается.
S3 Browser (GUI)¶
Рассмотрим настройку S3 Browser — клиента для работы с S3-совместимыми объектными хранилищами. Он позволяет создавать и удалять бакеты, просматривать объекты в хранилище и загружать новые файлы. Для установки S3 Browser скачайте дистрибутив на сайте разработчика.
При первом запуске S3 Browser откроется окно настройки подключения к хранилищу.
Заполните параметры, используя данные со страницы S3-пользователя (вкладка Overview):
Account type: выбратьS3 Compatible Storage.REST Endpoint: указать адрес хранилища, например:s3.loc.icdc.io, гдеloc-название локации.Access Key ID: идентификатор ключа Access Key, который вы получили при создании корзины (бакета).Secret Access Key: секретный ключ Secret Key, который вы получили при создании корзины (бакета).Use secure transfer (SSL/TLS): обязательная опция для использования зашифрованного SSL/TLS-канала для взаимодействия с хранилищем.Advanced Settings > Addressing model: выберите опциюPath-style
После заполнения данных необходимо нажать кнопку Add new account для завершения настройки s3browser для работы с S3.
С инструкциями по дальнейшей работе с S3 Browser можно ознакомиться на сайте разработчика.
s3cmd (CLI)¶
s3cmd - это консольный клиент для управления хранилищами объектов S3. Для установки S3cmd нужно скачать дистрибутив на сайте разработчика.
Для настройки S3cmd используйте команду s3cmd --configure и заполните значения для следующих параметров:
Access Key: идентификатор ключа Access Key, который вы получили при создании корзины (бакета).Secret Key: секретный ключ Secret Key, который вы получили при создании корзины (бакета).Default Region: оставьте незаполненным.S3 Endpoint: можно указать публичный адрес хранилищаs3.loc.icdc.ioили внутренний адресs3.local.loc.icdc.io, гдеloc-название локации.DNS-style bucket+hostname:port template for accessing a bucket: укажитеs3.loc.icdc.io(форматDNS-style %(bucket)s.s3.loc.icdc.ioв настоящее время не поддерживается).
Команда s3cmd --configure сохранит настройки в файле ~/.s3cfg в формате:
[default]
access_key = ACCESS_KEY
secret_key = SECRET_KEY
host_base = https://s3.loc.icdc.io
host_bucket = s3.loc.icdc.io
use_https = True
Публичный доступ¶
Пример вывода файла в публичный доступ с помощью команды s3cmd:
# 1. Настройте ключи пользователя S3, созданные в Storage в файле ~/.s3cfg.
# 2. Создайте бакет с публичным ACL
$ s3cmd mb --acl-public s3://test-anon
$ echo "hello world" > index.html
# 3. Сохраните объект с общедоступным ACL
$ s3cmd put --acl-public index.html s3://test-anon
upload: 'index.html' -> 's3://test-anon/index.html' [1 of 1]
12 of 12 100% in 0s 18.92 B/s done
Public URL of the object is: http://s3.loc.icdc.io/test-anon/index.html
$ s3cmd info s3://test-anon/index.html
s3://test-anon/index.html (object):
File size: 12
Last mod: Wed, 25 Oct 2023 08:51:52 GMT
MIME type: text/plain
Storage: STANDARD
MD5 sum: 6f5902ac237024bdd0c176cb93063dc4
SSE: none
Policy: none
CORS: none
ACL: *anon*: READ
ACL: test123___icdc___user@example.com: FULL_CONTROL
URL: http://s3.loc.icdc.io/test-anon/index.html
x-amz-meta-s3cmd-attrs: atime:1698223852/ctime:1698223852/gid:1000/gname:danix/md5:6f5902ac237024bdd0c176cb93063dc4/mode:33188/mtime:1698223852/uid:1000/uname:dan
Файл доступен по следующему адресу: https://s3.loc.icdc.io/test-anon/index.html
Доступ к публичным объектам в Storage V2
При использовании curl для доступа к публичным объектам в бакетах, созданных в рамках Storage V2, необходимо указывать имя аккаунта в формате account:bucket в URL, например:
Это требование не распространяется на доступ через s3cmd, который продолжает использовать стандартный формат bucket/object.
Политики доступа S3 (bucket policies)¶
Возможность ограничения доступа настраивается в рамках протокола S3 с использованием политик S3.
