java - 使用 OpenStack4j 向 IBM 对象存储进行身份验证

标签 java ibm-cloud object-storage 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

问题似乎是我无法弄清楚从哪里获取上面提到的 DOMAINPROJECT 信息,也许还有端点。文档说要从服务凭证查看凭证下的对象存储页面获取它们。我确实看到了包含以下字段的 JSON 输出:

{
  "apikey": "...",
  "endpoints": "...",
  "iam_apikey_description": "...",
  "iam_apikey_name": "...",
  "iam_role_crn": "...",
  "iam_serviceid_crn": "...",
  "resource_instance_id": "..."
}

其中似乎都与域或项目信息无关,至少从名称上来看是这样。我什至使用对象存储连接器创建了一个单独的 Web 应用程序,并尝试按照一些文档的建议从环境变量页面获取信息,但没有成功。

我最终想要实现的是能够将文件提取到我创建的容器中,并使用顶部的数据和分析服务(数据科学体验)。

最佳答案

造成混淆的原因是 Bluemix 上有(或曾经有)两种不同的对象存储服务(对象存储云对象存储)。 bluemix-mobile-services SDK 是为对象存储编写的,而不是为您配置的服务编写的。

“应用程序服务”页面有一个入门工具包,可以非常轻松地获取入门代码并使用 Liberty 项目的工具链进行设置:

example of starter

其中包含凭据的域字段。 (这里是入门工具包的链接,我添加了注入(inject)凭据的对象存储服务: 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#java

<小时/>

以下是对象存储服务的比较:

https://console.bluemix.net/catalog/infrastructure/object-storage-group

关于java - 使用 OpenStack4j 向 IBM 对象存储进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47462117/

相关文章:

kubernetes - 如何生成配置以连接到远程 Kubernetes 主机

node.js - 使用 Node.js 应用程序获取存储在 Bluemix Object Storage 容器中的图像的源 url

object-storage - 使用 s3 客户端获取 HTTP 客户端错误

java - 无法在 Thymeleaf 模板中设置变量

db2 - 如何在 IBM Data Science Experience 上的 Jupyter Notebooks 中启用 SQL Magics?

java - 商业产品组件的安全 HTTP 通信

java - 如何排除 IBM Bluemix Workload Scheduler for Java 运行时错误?

java - ObjectStore Bluemix 连接 java

java - 0 和 0. 在 Java 中有什么区别?

java - java :comp/env/HRONLINEFSDEV2 JNDI name could not be instantiated in Liberty 引用的对象