コード例 #1
0
        /// <summary>
        /// 修改文件存储类型
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public ChangeTypeResultDto ChangeType(ChangeTypeParam request)
        {
            return(ToolCommon.GetResponse(() =>
            {
                new ChangeTypeParamValidator().Validate(request).Check(HttpStatus.Err.Name);
                var fileInfo = Get(new GetFileParam(request.Key, request.PersistentOps));
                if (fileInfo.State)
                {
                    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);
                    if (fileInfo.FileType.Id == StorageClass.Archive.Id)
                    {
                        //解除归档
                        RestoreObjectResult result = client.RestoreObject(bucket, request.Key);
                        if (result != null && result.HttpStatusCode == HttpStatusCode.OK)
                        {
                            return new ChangeTypeResultDto(false, request.Key, "解除归档成功,请稍后再尝试更改文件存储类型");
                        }

                        if (result != null)
                        {
                            return new ChangeTypeResultDto(false, request.Key,
                                                           $"解除归档失败,请稍后重试,RequestId:{result.RequestId},HttpStatusCode:{result.HttpStatusCode}");
                        }

                        return new ChangeTypeResultDto(false, request.Key, "解除归档失败,请稍后重试");
                    }

                    var ret = client.GetObject(bucket, request.Key);
                    if (ret != null && ret.HttpStatusCode == HttpStatusCode.OK)
                    {
                        ObjectMetadata objectMetadata =
                            Core.Tools.GetObjectMetadataBySourceObjectMetadata(ret.Metadata, "x-oss-storage-class",
                                                                               Core.Tools.GetStorageClass(request.Type).ToString());
                        client.ModifyObjectMeta(bucket, request.Key, objectMetadata);
                        return new ChangeTypeResultDto(true, request.Key, "success");
                    }

                    if (ret != null)
                    {
                        return new ChangeTypeResultDto(false, request.Key,
                                                       $"lose,RequestId:{ret.RequestId},HttpStatusCode:{ret.HttpStatusCode}");
                    }

                    return new ChangeTypeResultDto(false, request.Key, "lose");
                }

                return new ChangeTypeResultDto(false, request.Key, fileInfo.Msg);
            }, message => new ChangeTypeResultDto(false, request.Key, message)));
        }
コード例 #2
0
        /// <summary>
        /// 修改文件存储类型
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public ChangeTypeResultDto ChangeType(ChangeTypeParam request)
        {
            new ChangeTypeParamValidator().Validate(request).Check(HttpStatus.Err.Name);
            HttpResult ret = base.GetBucketManager(request.PersistentOps)
                             .ChangeType(Core.Tools.GetBucket(QiNiuConfig, request.PersistentOps.Bucket), request.Key,
                                         request.Type.Id);

            if (ret.Code == (int)HttpCode.OK)
            {
                return(new ChangeTypeResultDto(true, request.Key, "success"));
            }

            return(new ChangeTypeResultDto(false, request.Key, ret.Text));
        }
コード例 #3
0
 /// <summary>
 /// 修改文件存储类型
 /// </summary>
 /// <param name="request"></param>
 /// <returns></returns>
 public ChangeTypeResultDto ChangeType(ChangeTypeParam request)
 {
     throw new NotImplementedException();
 }