Exemple #1
0
        /// <summary>
        /// 根据文件key集合删除
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public IEnumerable <DeleteResultDto> RemoveRange(RemoveRangeParam request)
        {
            return(ToolCommon.GetResponse(() =>
            {
                new RemoveRangeParamValidator().Validate(request).Check(HttpStatus.Err.Name);
                var zone = Core.Tools.GetZone(_aLiYunConfig, request.PersistentOps.Zone, () => ZoneEnum.HangZhou);
                var client = _aLiYunConfig.GetClient(zone);
                var bucket = Core.Tools.GetBucket(_aLiYunConfig, request.PersistentOps.Bucket);
                var ret = client.DeleteObjects(new DeleteObjectsRequest(bucket, request.Keys, false));
                if (ret.HttpStatusCode == HttpStatusCode.OK)
                {
                    List <DeleteResultDto> deleteResultList = new List <DeleteResultDto>();
                    request.Keys.ForEach(key =>
                    {
                        if (ret.Keys.Any(x => x.Key == key))
                        {
                            deleteResultList.Add(new DeleteResultDto(true, key, "success"));
                        }
                        else
                        {
                            deleteResultList.Add(new DeleteResultDto(true, key,
                                                                     $"delete lose,RequestId:{ret.RequestId}"));
                        }
                    });
                    return deleteResultList;
                }

                return request.Keys.Select(x =>
                                           new DeleteResultDto(false, x,
                                                               $"delete lose,RequestId:{ret.RequestId},HttpStatusCode:{ret.HttpStatusCode}"));
            }, message =>
                                          request.Keys.Select(x =>
                                                              new DeleteResultDto(false, x, message))));
        }
        /// <summary>
        /// 根据文件key集合删除
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public IEnumerable <DeleteResultDto> RemoveRange(RemoveRangeParam request)
        {
            new RemoveRangeParamValidator().Validate(request).Check(HttpStatus.Err.Name);
            List <DeleteResultDto> res = new List <DeleteResultDto>();

            request.Keys.ListPager((list) => { res.AddRange(DelMulti(list, request.PersistentOps)); }, 1000, 1);
            return(res);
        }
 /// <summary>
 /// 根据文件key集合删除
 /// </summary>
 /// <param name="request"></param>
 /// <returns></returns>
 public IEnumerable <DeleteResultDto> RemoveRange(RemoveRangeParam request)
 {
     throw new NotImplementedException();
 }