Аутентификация в IBM Object Storage с помощью OpenStack4j
Я испытываю трудности с аутентификацией в Службе хранения объектов в IBM Cloud из внешнего Java-приложения с использованием библиотеки OpenStack4j (версия 3.1.0). Вот как я пытаюсь:
Identifier domainIdentifier = Identifier.byName("DOMAIN");
Identifier projectIdentifier= Identifier.byName("PROJECT");
OSClient.OSClientV3 os = OSFactory.builderV3()
.endpoint("https://identity.open.softlayer.com/v3")
.credentials("USER", "PASS")
.scopeToProject(projectIdentifier, domainIdentifier)
.authenticate();
Рекомендации:
https://github.com/acloudfan/IBM-Object-Storage-Sample/
https://github.com/ibm-bluemix-mobile-services/bluemix-objectstorage-sample-liberty
Кажется, проблема в том, что я не могу понять, где взять информацию о DOMAIN и PROJECT, упомянутую выше, и, возможно, конечную точку. В документации сказано, что их можно получить на странице хранения объектов в разделе " Учетные данные службы" и " Просмотреть учетные данные". Я вижу вывод JSON со следующими полями:
{
"apikey": "...",
"endpoints": "...",
"iam_apikey_description": "...",
"iam_apikey_name": "...",
"iam_role_crn": "...",
"iam_serviceid_crn": "...",
"resource_instance_id": "..."
}
Ни один из которых, кажется, не относится к информации о домене или проекте, по крайней мере, по имени. Я даже создал отдельное веб-приложение с коннектором хранилища объектов и попытался получить информацию со страницы "Переменные среды", как предлагалось в некоторых документах, но безуспешно.
В конечном итоге я хочу получить возможность загружать файлы в созданный мною контейнер и использовать сервисы обработки данных и аналитики (Data Science Experience).
1 ответ
Причина путаницы заключается в том, что в Bluemix есть (или когда-то были) две разные службы хранения объектов (Storage Object и Cloud Object Storage). SDK bluemix-mobile-services предназначен для хранения объектов, а не для предоставляемой вами службы.
На странице службы приложений есть стартовый набор, который позволяет довольно просто получить стартовый код и настроить его с помощью набора инструментов для проекта Liberty:
Здесь есть поле домена для учетных данных. (Вот ссылка на стартовые наборы, и я добавил службу хранения объектов, которая вводит учетные данные: https://console.bluemix.net/developer/appservice/starter-kits. Или вы можете создать проект только с помощью службы и без кода: https://console.bluemix.net/developer/appservice/create-project?services=Object-Storage)
Вот документация для Java SDK для облачного хранилища объектов, если вы хотите использовать эту службу вместо:
https://console.bluemix.net/docs/services/cloud-object-storage/libraries/java.html
Вот сравнение сервисов Object Storage:
https://console.bluemix.net/catalog/infrastructure/object-storage-group