Работа с хранилищем¶
Для работы с хранилищем 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 хранилище новых объектов. Для установки S3 Browser нужно скачать дистрибутив на сайте разработчика.
При первом старте S3 Browser откроется окно диалога для конфигурации подключения к хранилищу. Его нужно заполнить, используя данные cо страницы пользователя 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.
