我在“伦敦”地区创建了一个包含仪表板。但是当我尝试访问它时,程序检查 - 显然是默认区域,如同here所述 - 只有区域“达拉斯”,即使我的凭据中的区域是“伦敦”。我试图通过我的程序创建一个容器,容器是在“达拉斯”地区创建的。
如何让我的程序访问“伦敦”地区的容器?有关如何指定该地区的任何建议表示赞赏。
我列出容器的代码如下所示;
final private OSClient os;
public ObjectStorageDAO(String url, String userId, String password, String project, String domainName)
throws Exception {
Identifier domainIdentifier = Identifier.byName(domainName);
Identifier projectIdentifier = Identifier.byName(project);
os = OSFactory.builderV3().endpoint(url).credentials(userId, password)
.scopeToProject(projectIdentifier, domainIdentifier).authenticate();
}
/**
* Returns the list of containers under the account
*/
public List containers() {
return os.objectStorage().containers().list();
}
答案 0 :(得分:2)
启动os对象后,你可以尝试强制该区域吗?
final private OSClient os;
public ObjectStorageDAO(String url, String userId, String password, String project, String domainName)
throws Exception {
Identifier domainIdentifier = Identifier.byName(domainName);
Identifier projectIdentifier = Identifier.byName(project);
os = OSFactory.builderV3().endpoint(url).credentials(userId, password)
.scopeToProject(projectIdentifier, domainIdentifier).authenticate();
/////////////////////////
// force london region //
/////////////////////////
os.useRegion('london')
}
/**
* Returns the list of containers under the account
*/
public List containers() {
return os.objectStorage().containers().list();
}
有关详细信息,请参阅此处:http://www.openstack4j.com/learn/identity/identity-v3