开发者社区> 问答> 正文

android 怎么从bucket里读取objcet名

android 怎么从bucket里读取objcet名? 就像C SDK 的  s = oss_list_object(options, &bucket, params, &resp_headers);一样

下面的代码是C的从oblist_list 中读具体的 object名
    aos_list_for_each_entry(oss_list_object_content_t, content, &params->object_list, node)
    {
        ++size;
        key = apr_psprintf(p, "%.*s", content->key.len, U2G(content->key.data));
        ShowObject(U2G(content->key.data));
    }

content->key就是列出的objcet的名称
     android的类似C的从列表里获取详细信息是哪个函数 ?
        android的怎么弄。。。。

展开
收起
有一天 2015-11-17 18:42:46 7126 0
4 条回答
写回答
取消 提交回答
  • 回 4楼debug的帖子
    STS Token鉴权方式的话,拿到的token应该本身就是json串,而不是XML数据,麻烦确认一下。
    2015-11-18 11:23:03
    赞同 展开评论 打赏
  • 回 1楼wood23的帖子
    你好,通过bucket 去Object 中间 会进行 网络请求操作。从中把网络中的 xml 数据转换成 json 这块代码您有吗。还请指点。 我是STS Token 鉴权方式 。
    2015-11-18 09:22:22
    赞同 展开评论 打赏
  • 回 1楼wood23的帖子

    -------------------------

    回 1楼wood23的帖子
        aos_list_for_each_entry(oss_list_object_content_t, content, &params->object_list, node)
        {
            ++size;
            key = apr_psprintf(p, "%.*s", content->key.len, U2G(content->key.data));
            ShowObject(U2G(content->key.data));
        }
                  android的类似C的从列表里获取详细信息是哪个函数 ?
    content->key就是列出的objcet的名称   android怎么弄
    2015-11-17 19:32:27
    赞同 展开评论 打赏
  • 如果您在初始化Bucket时进行了所有设置,那么初始化部分的代码可能是这样的:

    OSSBucket sampleBucket = ossService.getOssBucket("oss-example");
    sampleBucket.setBucketACL(AccessControlList.PRIVATE); // 指明该Bucket的访问权限
    sampleBucket.setBucketHostId("oss-cn-hangzhou.aliyuncs.com"); // 指明该Bucket所在数据中心的域名或已经绑定Bucket的CNAME域名
    // sampleBucket.setCdnAccelerateHostId("cname.to.cdn.domain.com"); // 设置指向CDN加速域名的CNAME域名
    通常来说,Bucket可以认为是一个全局概念,因为大部分情况下,您所有的数据操作,可能都跟某一个Bucket是相关的。因此,您应该也是在全局初始化时构造好这些Bucket,后面进行数据操作的时候,您只需把对应Bucket传入指明数据位置即可。

    3. List Objects

    设置Bucket以后,您可以调用如下接口罗列Bucket中的Objects:

    public ListObjectResult listObjectsInBucket(ListObjectOption opt);
    ListObjectOption是一个选项参数,用来设置Max-Keys、Marker、Prefix、Delimiter参数的,这些参数的意义和 OSS API手册中描述一致。ListObjectResult是返回结果,您可以从中取出相关信息。如:

    ListObjectOption opt = new ListObjectOption();
    opt.setDelimiter("/");
    opt.setPrefix("prefixdir/");
    opt.setMaxKeys(500);
    opt.setMarker(“prefix187");

    ListObjectResult result = sampleBucket.listObjectsInBucket(opt); // 调用接口罗列Bucket中的Objects

    int objectNum = result.getObjectInfoList().size();
    String nextMarkder = result.getNextMarker();
    Boolean isTruncated = result.isTruncated();
    List<ObjectInfo> objectList = result.getObjectInfoList(); // 获取返回结果中的Objects列表
    List<String> commonPrefixes = result.getCommonPrefixList(); // 在设置了Delimiter时,有相同前缀的object会被分为一组,记录在返回的commonprefix中

    for (ObjectInfo ele : objectList) { // 遍历返回的Objects列表
        String objectKey = ele.getObjectKey();
        String lastModifiedTime = ele.getLastModified());
    }

    for (String prefix : commonPrefixes) {
        // doSomething with prefixes
    }
    注意,这个方法是同步方法,执行过程中会发送网络请求,所以请不要直接在主线程中调用。
    2015-11-17 19:29:37
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
58同城Android客户端Walle框架演进与实践之路 立即下载
Android组件化实现 立即下载
蚂蚁聚宝Android秒级编译——Freeline 立即下载