我正在使用JClouds来抽象各种云提供商,包括Rackspace。
我使用JClouds的BlobStore存储文件,他们的API建议我可以使用以下方法在特定的(依赖于提供者的)位置创建容器:
context.getBlobStore().createContainerInLocation(location, "containerName");
但是,我应该如何获取位置变量(接口类型为Location)?
例如,RackSpace支持Dallas或Chicago作为容器的位置。所以我想做这样的事情:
Location dallas = ....; // Get location that points to "US-IL"
context.getBlobStore().createContainerInLocation(dallas, "container");
“魔术”字符串US-IL取自the source。
我试过用这个:
context.getBlobStore().listAssignableLocations(); // Only contains a single default location
context.getBlobStore().listAssignableLocations()[0].getParent(); // Not sure what this refers to, scoped at PROVIDER level
任何可以说明我应该如何使用它的人?
相关问题:JClouds for Azure Blob(不适用,因为答案是Azure特定的。这不需要位置...)
答案 0 :(得分:2)
现在可以在jclouds 1.8.0及更高版本中使用。
RegionScopedBlobStoreContext blobStoreContext = ContextBuilder.newBuilder(PROVIDER)
.credentials(username, apiKey)
.buildView(RegionScopedBlobStoreContext.class);
BlobStore blobStore = blobStoreContext.getBlobStore(REGION);