1

我在“伦敦”区域创建了一个包含通过仪表板。但是当我尝试访问它时,程序会检查 - 显然作为默认区域,如此处所述-只有区域“达拉斯”,即使我的凭据中的区域是“伦敦”。我试图通过我的程序创建一个容器,该容器是在“达拉斯”地区创建的。

如何让我的程序访问“伦敦”区域中的容器?任何有关如何指定区域的建议都值得赞赏。

我列出容器的代码如下所示;

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();
}
4

1 回答 1

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

于 2016-12-29T11:12:03.943 回答