S3#
CedrusData Catalog поддерживает работу с S3-совместимыми решениями, включая, но не ограничиваясь:
Коммерческие on-premises решения: ЗАКРОМА, Platformcraft
Программно-аппаратные комплексы: TATLIN.OBJECT
Российские облачные провайдеры: VK Cloud Storage, Yandex Object Storage, Selectel
Зарубежные облачные провайдеры: AWS S3, и т.п.
Для создания файловой системы S3 необходимо передать адрес (endpoint), а также статические ключи доступа или конфигурацию Security Token Service.
Конфигурация#
Параметр |
Описание |
---|---|
|
Адрес S3-сервиса. Должен быть передан в формате |
|
Регион S3-сервиса. Значение по умолчанию: |
|
Использовать ли режим разрешения адресов path-style.
Если значение равно |
|
Статический access key. Если задан, необходимо также задать |
|
Статический secret key. Если задан, необходимо также задать |
|
ARN (Amazon Resource Name) роли, который будет использован в AssumeRole запросе для получения временных токенов доступа. |
|
Значение RoleSessionName, которое будет использовано в AssumeRole запросе для получения временных токенов доступа. |
|
Значение ExternalId, которое будет использовано в AssumeRole запросе для получения временных токенов доступа. |
|
Адрес STS сервиса. Должен быть передан в формате |
|
Регион STS сервиса. Если не указан, будет использовано значение |
Пример интеграции с MinIO#
Данный пример показывает как подключить CedrusData Catalog к MinIO и проверить работоспособность интеграции.
Убедитесь, что у вас установлен Docker Server, и команда
docker
не требуетsudo
Создайте сеть Docker, которая будет использована CedrusData Catalog и MinIO:
docker network create example-network
Создайте директорию, в которой будут находиться файлы MinIO:
mkdir minio-data
Запустите контейнер MinIO:
docker run -d \ --name example-minio \ --network example-network \ -p 9000:9000 \ -p 9001:9001 \ -e MINIO_ADDRESS=':9000' \ -e MINIO_CONSOLE_ADDRESS=':9001' \ -e MINIO_ACCESS_KEY=accesskey \ -e MINIO_SECRET_KEY=secretkey \ -v $PWD/minio-data:/data minio/minio:RELEASE.2024-07-16T23-46-41Z \ server /data
Откройте в браузере страницу http://localhost:9001/ и убедитесь, что сервис MinIO запущен успешно. Используйте
accesskey
иsecretkey
в качестве имени пользователя и пароля, соответственно.Создайте бакет и файл в MinIO:
docker exec -it example-minio touch test.file docker exec -it example-minio mc config host add minio http://127.0.0.1:9000 accesskey secretkey docker exec -it example-minio mc mb minio/ice-bucket docker exec -it example-minio mc cp test.file minio/ice-bucket/
Запустите CedrusData Catalog:
docker run -d \ --name example-catalog \ --network=example-network \ -p 9080:9080 \ cr.yandex/crpjtvqf29mpabhmrf1s/cedrusdata-catalog:458-1
Создайте файловую систему S3, передав параметры
endpoint
,access-key
иsecret-key
:docker exec -it example-catalog catalog file-system create \ --file-system-name minio \ --type s3 \ -p endpoint=http://example-minio:9000 \ -p access-key=accesskey \ -p secret-key=secretkey
Убедитесь, что каталог может получить статус объекта с помощью команды file-system check:
docker exec -it example-catalog catalog file-system check \ --file-system-name minio \ --location s3://ice-bucket/test.file
+--------+ | exists | +--------+ | true | +--------+
(при необходимости) Остановите контейнеры и удалите ненужные ресурсы. Вам может потребоваться привилегия
sudo
для удаления директорииminio-data
:docker rm -f example-catalog docker rm -f example-minio docker network rm example-network rm -rf minio-data