我们使用此Java库运行SoftLayer的对象存储。 https://github.com/softlayer/softlayer-object-storage-java/tree/master/sl-objectstorage 「SL-objectstorage.jar」 「com.softlayer.objectstorage.Account」 - 「查询」方法
当我们想要在容器中获取文件列表时,我们可以获得在2016年12月1日之前上传和保存的文件列表,但我们无法获得2016年12月1日之后保存的文件列表。
你有解决这类问题的方法吗?
答案 0 :(得分:0)
最好是打开SoftLayer(IBM BlueMix)支持服务单,包括数据中心,容器名称,以及可能的查询时间和预期结果。
支持人员可以将其与任何已知问题和解决方案相关联。
答案 1 :(得分:0)
显然,某些数据中心中的搜索方法存在问题。例如:ams01。
我们正在报告此问题,但打开要跟踪此问题的故障单应该很好(附上此论坛)。无论如何,如果有修复,我们会在这个帖子中告诉你任何新闻。
<强>更新强>
这可能是一种解决方法:
public static void main(String[] args) throws IOException, EncoderException {
/**
* Define Object Storage Account information
*/
String baseUrl = "https://tok02.objectstorage.softlayer.net/auth/v1.0/";
String user = "set me";
String password = "set me";
Account account = new Account(baseUrl, user, password);
// Define your container's name
String containerName = "r";
List<Container> containers = account.listAllContainers();
for (Container container: containers){
if(container.getName().contains(containerName))
{
System.out.println("Container: " + container.getName());
for(ObjectFile file : container.listObjectFiles())
{
System.out.println("File Name: " + file.getName());
System.out.println("Bytes: " + file.getBytes());
System.out.println("Meta Tags: " + file.getMetaTags());
}
System.out.println("==================================");
}
}
}
此外,您可以更改此行:
if(container.getName().contains(containerName))
为:
if(container.getName().equal(containerName))
获取容器名称的完全匹配
我希望它可以帮到你。