/// <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))); }
/// <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)); }
/// <summary> /// 修改文件存储类型 /// </summary> /// <param name="request"></param> /// <returns></returns> public ChangeTypeResultDto ChangeType(ChangeTypeParam request) { throw new NotImplementedException(); }