无法在 SoftLayer 的对象存储中获取文件列表
Cannot get the file list in SoftLayer's Object Storage
我们使用这个 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日之后保存的文件列表是完全获取不到的。
你有解决这类问题的方法吗?
如果您能打开 SoftLayer (IBM BlueMix) 支持票证,最好包括数据中心、容器名称,如果可能的话,还包括查询的时间和预期结果。
支持人员随后可以将其与任何已知问题和解决方案相关联。
显然,某些 datacenters 中的 search 方法存在问题。例如:ams01。
我们正在报告这个问题,但最好开张票来跟踪这个问题(附上这个论坛)。不管怎样,如果有修复,我们会在这个帖子中让你知道任何消息。
Updated
这可能是一个解决方法:
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))
获取容器名称的精确匹配
希望对您有所帮助
我们使用这个 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日之后保存的文件列表是完全获取不到的。
你有解决这类问题的方法吗?
如果您能打开 SoftLayer (IBM BlueMix) 支持票证,最好包括数据中心、容器名称,如果可能的话,还包括查询的时间和预期结果。
支持人员随后可以将其与任何已知问题和解决方案相关联。
显然,某些 datacenters 中的 search 方法存在问题。例如:ams01。
我们正在报告这个问题,但最好开张票来跟踪这个问题(附上这个论坛)。不管怎样,如果有修复,我们会在这个帖子中让你知道任何消息。
Updated
这可能是一个解决方法:
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))
获取容器名称的精确匹配
希望对您有所帮助