使用 OpenStack4j 向 IBM 对象存储进行身份验证
Authenticating to IBM Object Storage with OpenStack4j
我很难从使用 OpenStack4j 库(版本 3.1.0)的外部 Java 应用程序向 IBM Cloud 中的对象存储服务进行身份验证。这是我正在尝试的方式:
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信息,也许端点。文档说从 Object Storage 页面的 Service Credentials 和 View Credentials 下获取它们。我确实看到了包含以下字段的 JSON 输出:
{
"apikey": "...",
"endpoints": "...",
"iam_apikey_description": "...",
"iam_apikey_name": "...",
"iam_role_crn": "...",
"iam_serviceid_crn": "...",
"resource_instance_id": "..."
}
None 其中似乎与域或项目信息相关,至少在名称上是这样。我什至创建了一个带有对象存储连接器的单独 Web 应用程序,并尝试按照某些文档的建议从环境变量页面获取信息,但没有成功。
我最终想要实现的是能够将文件提取到我创建的容器中,并在顶部使用数据和分析服务(数据科学经验)。
混淆的原因是 Bluemix 上有(或曾经有)两种不同的对象存储服务(对象存储和云对象存储). bluemix-mobile-services SDK 是为 Object Storage 而不是您配置的服务编写的。
App Service 页面有一个入门工具包,可以很容易地获取入门代码并使用 Liberty 项目的工具链进行设置:
这具有凭据的域字段。 (这里是初学者工具包的 link,我添加了注入凭据的对象存储服务:https://console.bluemix.net/developer/appservice/starter-kits. Or you can create a project with just the service and no code: https://console.bluemix.net/developer/appservice/create-project?services=Object-Storage)
这里是Java Cloud Object Storage SDK 的文档,如果您想改用该服务:
https://console.bluemix.net/docs/services/cloud-object-storage/libraries/java.html#java
以下是对象存储服务的比较:
https://console.bluemix.net/catalog/infrastructure/object-storage-group
我很难从使用 OpenStack4j 库(版本 3.1.0)的外部 Java 应用程序向 IBM Cloud 中的对象存储服务进行身份验证。这是我正在尝试的方式:
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信息,也许端点。文档说从 Object Storage 页面的 Service Credentials 和 View Credentials 下获取它们。我确实看到了包含以下字段的 JSON 输出:
{
"apikey": "...",
"endpoints": "...",
"iam_apikey_description": "...",
"iam_apikey_name": "...",
"iam_role_crn": "...",
"iam_serviceid_crn": "...",
"resource_instance_id": "..."
}
None 其中似乎与域或项目信息相关,至少在名称上是这样。我什至创建了一个带有对象存储连接器的单独 Web 应用程序,并尝试按照某些文档的建议从环境变量页面获取信息,但没有成功。
我最终想要实现的是能够将文件提取到我创建的容器中,并在顶部使用数据和分析服务(数据科学经验)。
混淆的原因是 Bluemix 上有(或曾经有)两种不同的对象存储服务(对象存储和云对象存储). bluemix-mobile-services SDK 是为 Object Storage 而不是您配置的服务编写的。
App Service 页面有一个入门工具包,可以很容易地获取入门代码并使用 Liberty 项目的工具链进行设置:
这具有凭据的域字段。 (这里是初学者工具包的 link,我添加了注入凭据的对象存储服务:https://console.bluemix.net/developer/appservice/starter-kits. Or you can create a project with just the service and no code: https://console.bluemix.net/developer/appservice/create-project?services=Object-Storage)
这里是Java Cloud Object Storage SDK 的文档,如果您想改用该服务:
https://console.bluemix.net/docs/services/cloud-object-storage/libraries/java.html#java
以下是对象存储服务的比较:
https://console.bluemix.net/catalog/infrastructure/object-storage-group