存储类型 标准存储 低频访问 归档存储
상속: Enumeration
예제 #1
0
        /// <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);
        }
예제 #2
0
        /// <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)));
        }