无法在SoftLayer的对象存储

时间:2016-12-08 01:14:41

标签: java ibm-cloud-infrastructure 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日之后保存的文件列表。

你有解决这类问题的方法吗?

2 个答案:

答案 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))

获取容器名称的完全匹配

我希望它可以帮到你。