无法在 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))

获取容器名称的精确匹配

希望对您有所帮助