2

我正在使用 JClouds 对各种云提供商进行抽象,包括 Rackspace。

我正在使用 JClouds 中的 BlobStore 来存储文件,他们的 API 建议我可以使用以下命令在特定(依赖于提供程序)位置创建容器:

context.getBlobStore().createContainerInLocation(location, "containerName");

但是,我应该如何获取位置变量(接口类型位置)?

例如,RackSpace 支持将达拉斯或芝加哥作为容器的位置。所以我想做这样的事情:

 Location dallas = ....; // Get location that points to "US-IL"
 context.getBlobStore().createContainerInLocation(dallas, "container");

'magic' 字符串 US-IL 取自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 特定的。不需要位置...)

4

1 回答 1

2

这现在可以在 jclouds 1.8.0 及更高版本中实现。

RegionScopedBlobStoreContext blobStoreContext = ContextBuilder.newBuilder(PROVIDER)
        .credentials(username, apiKey)
        .buildView(RegionScopedBlobStoreContext.class);
BlobStore blobStore = blobStoreContext.getBlobStore(REGION);
于 2013-04-03T22:23:08.247 回答