Java 使用OpenStack4j对IBM对象存储进行身份验证
我很难使用OpenStack4j库(3.1.0版)从外部Java应用程序验证IBMCloud中的对象存储服务。以下是我的尝试:Java 使用OpenStack4j对IBM对象存储进行身份验证,java,ibm-cloud,object-storage,openstack4j,Java,Ibm Cloud,Object Storage,Openstack4j,我很难使用OpenStack4j库(3.1.0版)从外部Java应用程序验证IBMCloud中的对象存储服务。以下是我的尝试: Identifier domainIdentifier = Identifier.byName("DOMAIN"); Identifier projectIdentifier= Identifier.byName("PROJECT"); OSClient.OSClientV3 os = OSFactory.builderV3() .endpoint("https:
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();
参考资料:
问题似乎是我不知道从哪里获得上面提到的域和项目信息,也许还有端点。文档中说要从服务凭据下的对象存储页面和查看凭据中获取它们。我确实看到一个JSON输出,其中包含以下字段:
{
"apikey": "...",
"endpoints": "...",
"iam_apikey_description": "...",
"iam_apikey_name": "...",
"iam_role_crn": "...",
"iam_serviceid_crn": "...",
"resource_instance_id": "..."
}
这些似乎都与域或项目信息无关,至少与名称无关。我甚至创建了一个带有对象存储连接器的独立Web应用程序,并尝试从环境变量页面获取信息,正如一些文档所建议的那样,但没有成功
我最终想要实现的是能够将文件摄取到我创建的容器中,并使用顶部的数据和分析服务(数据科学体验)。造成混淆的原因是Bluemix上有(或曾经有)两个不同的对象存储服务(对象存储和云对象存储)。bluemix移动服务SDK是为对象存储而不是您提供的服务编写的 应用程序服务页面有一个初学者工具包,可以很容易地获取初学者代码,并使用Liberty项目的工具链进行设置: 这有凭据的域字段。(这里是到starter kits的链接&我添加了注入凭据的对象存储服务:。或者您可以创建一个仅包含服务而不包含代码的项目:) 以下是Java SDK for云对象存储的文档,如果您想改用该服务:
以下是对象存储服务的比较:
好的,看起来很简单,谢谢!我还在原始帖子中更具体地更新了用例。