/// <summary>
        /// 获取文件信息
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public FileInfoDto Get(GetFileParam request)
        {
            new GetFileParamValidator().Validate(request).Check(HttpStatus.Err.Name);
            StatResult statRet = GetBucketManager(request.PersistentOps)
                                 .Stat(Core.Tools.GetBucket(QiNiuConfig, request.PersistentOps.Bucket), request.Key);

            if (statRet.Code != (int)HttpCode.OK)
            {
                return(new FileInfoDto(false, statRet.ToString()));
            }

            return(new FileInfoDto(true, "success")
            {
                Size = statRet.Result.Fsize,
                Hash = statRet.Result.Hash,
                MimeType = statRet.Result.MimeType,
                PutTime = statRet.Result.PutTime,
                FileType = Configuration.Ioc.Plugs.Storage.Enumerations.StorageClass
                           .FromValue <EInfrastructure.Core.Configuration.Ioc.Plugs.Storage.Enumerations.StorageClass>(
                    statRet.Result.FileType),
                Key = request.Key,
            });
        }
Ejemplo n.º 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)));
        }
 /// <summary>
 /// 获取文件信息
 /// </summary>
 /// <param name="request"></param>
 /// <returns></returns>
 public FileInfoDto Get(GetFileParam request)
 {
     throw new NotImplementedException();
 }