当用Java写blobstore时出现警告WARNING如下:
运行的原程序是:
package jclouds_swift.jclouds.swift;
import java.util.Properties;
import org.jclouds.ContextBuilder;
import org.jclouds.blobstore.BlobStore;
import org.jclouds.blobstore.BlobStoreContext;
import org.jclouds.blobstore.domain.StorageMetadata;
import org.jclouds.blobstore.domain.StorageType;
import org.jclouds.logging.slf4j.config.SLF4JLoggingModule;
import org.jclouds.openstack.keystone.config.KeystoneProperties;
import org.jclouds.openstack.swift.v1.blobstore.RegionScopedBlobStoreContext;
import com.google.common.collect.ImmutableSet;
import com.google.inject.Module;
public class BlobListTest {
private String endpointString="http://192.168.1.120:5000/v3/";
private String identityString="Default:demo";
private String passwordString="8f0928ff047b4498";
private String providerString="openstack-swift";
private final BlobStoreContext context;
private final BlobStore blobStore;
public BlobListTest() {
Iterable<Module> modules = ImmutableSet.<Module>of(
new SLF4JLoggingModule());
final Properties overrides = new Properties();
overrides.put(KeystoneProperties.KEYSTONE_VERSION, "3");
overrides.put(KeystoneProperties.SCOPE, "project:demo");
context=ContextBuilder.newBuilder(providerString)
.credentials(identityString, passwordString)
.overrides(overrides)
//.modules(modules)
.endpoint(endpointString)
.buildView(BlobStoreContext.class);
blobStore=context.getBlobStore();
}
public void list(String container) {
for(StorageMetadata resourceMd:blobStore.list(container)) {
if(resourceMd.getType()==StorageType.BLOB) {
System.out.println(resourceMd.getName()+":"+
resourceMd.getCreationDate());
}
}
}
public static void main(String[] args) {
BlobListTest test=new BlobListTest();
test.list("jclouds-example");
}
}
若想要修改警告
查询官网上的API后:
由包:org.jclouds.openstack.swift.v1.blobstore中的RegionScopedBlobStoreContext类可知:
将程序修改成:
package jclouds_swift.jclouds.swift;
import java.util.Properties;
import org.jclouds.ContextBuilder;
import org.jclouds.blobstore.BlobStore;
import org.jclouds.blobstore.BlobStoreContext;
import org.jclouds.blobstore.domain.StorageMetadata;
import org.jclouds.blobstore.domain.StorageType;
import org.jclouds.logging.slf4j.config.SLF4JLoggingModule;
import org.jclouds.openstack.keystone.config.KeystoneProperties;
import org.jclouds.openstack.swift.v1.blobstore.RegionScopedBlobStoreContext;
import com.google.common.collect.ImmutableSet;
import com.google.inject.Module;
public class BlobListTest {
private String endpointString="http://192.168.1.120:5000/v3/";
private String identityString="Default:demo";
private String passwordString="8f0928ff047b4498";
private String providerString="openstack-swift";
private final RegionScopedBlobStoreContext context;
private final BlobStore blobStore;
public BlobListTest() {
Iterable<Module> modules = ImmutableSet.<Module>of(
new SLF4JLoggingModule());
final Properties overrides = new Properties();
overrides.put(KeystoneProperties.KEYSTONE_VERSION, "3");
overrides.put(KeystoneProperties.SCOPE, "project:demo");
context=ContextBuilder.newBuilder(providerString)
.credentials(identityString, passwordString)
.overrides(overrides)
//.modules(modules)
.endpoint(endpointString)
.buildView(RegionScopedBlobStoreContext.class);
blobStore=context.getBlobStore("RegionOne");
}
public void list(String container) {
for(StorageMetadata resourceMd:blobStore.list(container)) {
if(resourceMd.getType()==StorageType.BLOB) {
System.out.println(resourceMd.getName()+":"+
resourceMd.getCreationDate());
}
}
}
public static void main(String[] args) {
BlobListTest test=new BlobListTest();
test.list("jclouds-example");
}
}
将BlobStore换成RegionScopedBlobStoreContext,并加上RegionOne即可。
运行成功后的结果为: