/// <summary> /// 批量更改文件类型 /// </summary> /// <param name="request"></param> /// <returns></returns> public List <ChangeTypeResultDto> ChangeTypeRange(ChangeTypeRangeParam request) { new ChangeTypeRangeParamValidator().Validate(request).Check(HttpStatus.Err.Name); List <ChangeTypeResultDto> resultList = new List <ChangeTypeResultDto>(); List <StorageClass> storageClasList = StorageClass.GetAll <StorageClass>().ToList(); request.Keys.ForEach(key => { resultList.Add(storageClasList.Any(x => x.Id == request.Type.Id) ? ChangeType(new ChangeTypeParam(key, request.Type, request.PersistentOps)) : new ChangeTypeResultDto(false, key, "文件存储类型不支持,请输入1或者0")); }); return(resultList); }
/// <summary> /// 获取文件信息 /// </summary> /// <param name="request"></param> /// <returns></returns> public FileInfoDto Get(GetFileParam request) { return(ToolCommon.GetResponse(() => { new GetFileParamValidator().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.GetObject(bucket, request.Key); if (ret.HttpStatusCode == HttpStatusCode.OK) { string fileTypeStr = ret.Metadata.HttpMetadata.Where(x => x.Key == "x-oss-storage-class") .Select(x => x.Value.ToString()).FirstOrDefault(); StorageClass fileType = null; if (!string.IsNullOrEmpty(fileTypeStr)) { fileType = Core.Tools.GetStorageClass(fileTypeStr); } return new FileInfoDto(true, "success") { Hash = ret.Metadata.ContentMd5, Key = ret.Key, Size = ret.Metadata.ContentLength, PutTime = ret.Metadata.LastModified.ToUnixTimestamp(TimestampType.Second), MimeType = ret.Metadata.ContentType, FileType = fileType }; } return new FileInfoDto(false, $"lose RequestId:{ret.RequestId},HttpStatusCode:{ret.HttpStatusCode}") { Key = request.Key }; }, message => new FileInfoDto(false, message))); }