Exemplo n.º 1
0
        /// <summary>
        /// 批量设置生存时间(超时会自动删除)
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public List <ExpireResultDto> SetExpireRange(SetExpireRangeParam request)
        {
            return(ToolCommon.GetResponse(() =>
            {
                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 setBucketLifecycleRequest = new SetBucketLifecycleRequest(bucket);

                List <ExpireResultDto> list = new List <ExpireResultDto>();
                request.Keys.ForEach(key =>
                {
                    LifecycleRule lcr = new LifecycleRule()
                    {
                        ID = "delete " + key + " files",
                        Prefix = key,
                        Status = RuleStatus.Enabled,
                        ExpriationDays = request.Expire
                    };
                    setBucketLifecycleRequest.AddLifecycleRule(lcr);
                    list.Add(new ExpireResultDto(true, key, "success"));
                });

                client.SetBucketLifecycle(setBucketLifecycleRequest); //调整生命周期
                return list;
            }, message =>
            {
                List <ExpireResultDto> list = new List <ExpireResultDto>();
                request.Keys.ForEach(key => { list.Add(new ExpireResultDto(false, key, message)); });
                return list;
            }));
        }
        /// <summary>
        /// 批量设置生存时间(超时会自动删除)
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public List <ExpireResultDto> SetExpireRange(SetExpireRangeParam request)
        {
            new SetExpireRangeParamValidator().Validate(request).Check(HttpStatus.Err.Name);
            List <ExpireResultDto> expireResult = new List <ExpireResultDto>();

            request.Keys.Distinct().ToList()
            .ListPager(
                (list) =>
            {
                expireResult.AddRange(SetExpireMulti(list.ToArray(), request.Expire, request.PersistentOps));
            },
                1000,
                1);
            return(expireResult);
        }
 /// <summary>
 /// 批量设置生存时间(超时会自动删除)
 /// </summary>
 /// <param name="request"></param>
 /// <returns></returns>
 public List <ExpireResultDto> SetExpireRange(SetExpireRangeParam request)
 {
     throw new NotImplementedException();
 }