开发者社区> 问答> 正文

.NET-SDK之如何实现管理文件(一)?

在OSS中,用户可以通过一系列的接口管理存储空间(Bucket)中的文件(Object),比如ListObjects、DeleteObject、CopyObject、DoesObjectExist等。

列出存储空间中的文件



简单列出文件

  1. using Aliyun.OSS;
  2. // 初始化OssClient
  3. var client = new OssClient(endpoint, accessKeyId, accessKeySecret);
  4. /// <summary>
  5. /// 列出指定存储空间下的文件的摘要信息OssObjectSummary列表
  6. /// </summary>
  7. /// <param name="bucketName">存储空间的名称</param>
  8. public void ListObjects(string bucketName)
  9. {
  10.     try
  11.     {
  12.         var listObjectsRequest = new ListObjectsRequest(bucketName);
  13.         var result = client.ListObjects(listObjectsRequest);
  14.         Console.WriteLine("List objects succeeded");
  15.         foreach (var summary in result.ObjectSummaries)
  16.         {
  17.             Console.WriteLine("File name:{0}", summary.Key);
  18.         }
  19.     }
  20.     catch (Exception ex)
  21.     {
  22.          Console.WriteLine("List objects failed. {0}", ex.Message);
  23.     }
  24. }

说明:
  • 完整代码参考GitHub
  • 默认情况下,如果存储空间中的文件数量大于100,则只会返回100个文件, 且返回结果中 IsTruncated 为 true,并返回 NextMarker 作为下此读取的起点。
  • 若想增大返回文件数目,可以修改MaxKeys参数,或者使用Marker参数分次读取。


带前缀过滤的列出文件

  1. using Aliyun.OSS;
  2. // 初始化OssClient
  3. var client = new OssClient(endpoint, accessKeyId, accessKeySecret);
  4. /// <summary>
  5. /// 列出指定存储空间下其Key以prefix为前缀的文件的摘要信息OssObjectSummary
  6. /// </summary>
  7. /// <param name="bucketName">存储空间的名称</param>
  8. /// <param name="prefix">限定返回的文件必须以此作为前缀</param>  
  9. public void ListObjects(string bucketName, string prefix)
  10. {
  11.     try
  12.     {
  13.         var listObjectsRequest = new ListObjectsRequest(bucketName)
  14.         {
  15.             Prefix = prefix
  16.         };
  17.         var result = client.ListObjects(listObjectsRequest);
  18.         Console.WriteLine("List objects succeeded");
  19.         foreach (var summary in result.ObjectSummaries)
  20.         {
  21.             Console.WriteLine("File Name:{0}", summary.Key);
  22.         }
  23.     }
  24.     catch (Exception ex)
  25.     {
  26.          Console.WriteLine("List objects failed. {0}", ex.Message);
  27.     }
  28. }

展开
收起
青衫无名 2017-10-18 15:15:29 1719 0
0 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
从 SDK 到编解码:视频直播架构解析 立即下载
跨平台的云服务SDK需要什么 立即下载
一个跨平台的云服务SDK需要什么 立即下载