开发者社区 问答 正文

对象存储 OSS5. 列出存储空间中的所有文件

已解决

展开
收起
游客x4xsicqulmwc2 2017-12-30 15:13:24 897 分享 版权
1 条回答
写回答
取消 提交回答
  • 用户已注销
    采纳回答

    详细解答可以参考官方帮助文档

    当您完成一系列上传后,可能需要查看某个存储空间中有哪些文件,可以通过下面的程序实现:

    1. aos_pool_t *p;
    2. oss_request_options_t *options;
    3. aos_status_t *s;
    4. aos_table_t *resp_headers;
    5. char *bucket_name = "<您的bucket名字>";
    6. aos_string_t bucket;
    7. oss_list_object_params_t *params;
    8. oss_list_object_content_t *content;
    9. int max_ret = 1000;
    10. char *key;
    11. aos_pool_create(&p, NULL);
    12. /* 创建并初始化options */
    13. options = oss_request_options_create(p);
    14. init_options(options);
    15. /* 初始化参数 */
    16. aos_str_set(&bucket, bucket_name);
    17. params = oss_create_list_object_params(p);
    18. params->max_ret = max_ret;
    19. aos_str_set(&params->prefix, "<prefix>");
    20. aos_str_set(&params->delimiter, "<delimiter>");
    21. aos_str_set(&params->marker, "<marker>");
    22. s = oss_list_object(options, &bucket, params, &resp_headers);
    23. /* 判断请求是否成功 */
    24. if (aos_status_is_ok(s)) {
    25. printf("list file succeeded\n");
    26. } else {
    27. printf("list file failed\n");
    28. }
    29. /* 获取每个文件的名称 */
    30. aos_list_for_each_entry(content, &params->object_list, node) {
    31. key = apr_psprintf(p, "%.*s", content->key.len, content->key.data);
    32. }
    33. /* 释放资源 */
    34. aos_pool_destroy(p);

    注:

    2018-01-05 04:38:13
    赞同 展开评论