示例#1
0
        /// <summary>
        /// 根据文件流以及文件字节数组上传
        /// </summary>
        /// <param name="param"></param>
        /// <returns></returns>
        public UploadResultDto UploadByToken(UploadByTokenParam param)
        {
            return(ToolCommon.GetResponse(() =>
            {
                var zone = Core.Tools.GetZone(_aLiYunConfig, param.UploadPersistentOps.Zone,
                                              () => ZoneEnum.HangZhou);
                var client = _aLiYunConfig.GetClient(zone, param.Token);
                return Upload(param.IsResume, (bucket, newPersistentOps, objectMetadata) =>
                {
                    PutObjectResult ret;
                    if (param.IsResume)
                    {
                        var request = new UploadObjectRequest(bucket, param.Key, param.Stream)
                        {
                            PartSize = Core.Tools.GetPartSize(
                                Core.Tools.GetChunkUnit(_aLiYunConfig, newPersistentOps.ChunkUnit,
                                                        () => ChunkUnit.U2048K)),
                            Metadata = objectMetadata
                        };
                        ret = client.ResumableUploadObject(request);
                    }
                    else
                    {
                        ret = client.PutObject(bucket, param.Key, param.Stream, objectMetadata);
                    }

                    return ret;
                }, param.UploadPersistentOps);
            }, (message, ex) => new UploadResultDto(false, ex, message)));
        }
示例#2
0
        /// <summary>
        /// 根据文件流以及文件字节数组上传
        /// </summary>
        /// <param name="param">文件流上传配置</param>
        /// <returns></returns>
        public UploadResultDto UploadByToken(UploadByTokenParam param)
        {
            var          uploadPersistentOps = GetUploadPersistentOps(param.UploadPersistentOps);
            FormUploader target = new FormUploader(GetConfig(uploadPersistentOps));
            HttpResult   result;

            if (param.Stream != null)
            {
                result =
                    target.UploadStream(param.Stream, param.Key, param.Token, GetPutExtra(uploadPersistentOps));

                bool res = result.Code == (int)HttpCode.OK;
                return(new UploadResultDto(res, res ? "成功" : result.ToString()));
            }

            if (param.ByteArray != null)
            {
                result =
                    target.UploadData(param.ByteArray, param.Key, param.Token, GetPutExtra(uploadPersistentOps));

                bool res = result.Code == (int)HttpCode.OK;
                return(new UploadResultDto(res, res ? "成功" : result.ToString()));
            }

            return(new UploadResultDto(false, "不支持的上传方式"));
        }
 /// <summary>
 /// 根据文件流以及文件字节数组上传
 /// </summary>
 /// <param name="param">文件流上传配置</param>
 /// <returns></returns>
 public UploadResultDto UploadByToken(UploadByTokenParam param)
 {
     throw new NotImplementedException();
 }