0

我们使用这个 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 日之后保存的文件列表。

您有解决此类问题的方法吗?

4

2 回答 2

0

如果您可以打开 SoftLayer (IBM BlueMix) 支持票证,包括数据中心、容器名称,以及如果可能的话,查询的时间和预期结果可能是最好的。

然后,支持人员可以将其与任何已知问题和解决方案相关联。

于 2016-12-08T21:12:25.913 回答
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))

获取容器名称的完全匹配

我希望它可以帮助你。

于 2016-12-09T14:35:42.357 回答