阿里云OSS 获取目录下所有文件

  public class AliyunHandle
    {
        public static string accessKeyId = "a1uI5xxxxxxxxxrP4H";
        public static string accessKeySecret = "9JDdggMdT2cxxxxxxxxxxxxxxx5VaE9z";
        public static string endpoint = "oss-cn-qingdao.aliyuncs.com";
        public static string bucket = "testoss";
        OssClient client = new OssClient(endpoint, accessKeyId, accessKeySecret);

        public void Get()
        {
            var flag = true;
            string maker = string.Empty;

            var dayTime = 24 * 60 * 60 * 1000;
            int k = 0;
            do
            {
                var listObjectsRequest = new ListObjectsRequest(bucket);
                listObjectsRequest.Prefix = "test/47383/"; //指定下一级文件
                listObjectsRequest.Marker = maker; //获取下一页的起始点,它的下一项
                listObjectsRequest.MaxKeys = 100;//设置分页的页容量
                listObjectsRequest.Delimiter = "/";//跳出递归循环,只去指定目录下的文件。使用它时 Prefix文件路径要以“/”结尾
                var result = client.ListObjects(listObjectsRequest);

                Console.WriteLine("List objects succeeded");

                foreach (var summary in result.ObjectSummaries)
                {
                    Console.WriteLine($"{k}File name:{summary.Key}\r\n\r\n");
                    TimeSpan timepsan = DateTime.Now - summary.LastModified;//最后修改时间
                    //时间超过一天就删除
                    if (timepsan.TotalMilliseconds > dayTime)
                    {
                        //删除oss文件
                        client.DeleteObject(bucket, summary.Key);
                        Console.WriteLine($"删除{summary.Key}");
                    }
                    k++;
                }
                maker = result.NextMarker;
                flag = result.IsTruncated;//全部执行完后,为false
            } while (flag);
        }

    }

 

posted @ 2017-12-27 11:42  逍遥帝君  阅读(20809)  评论(1编辑  收藏  举报