/// <summary>
        /// 得到七牛配置文件
        /// </summary>
        /// <returns></returns>
        internal Qiniu.Storage.Config GetConfig(UploadPersistentOps uploadPersistentOps = null)
        {
            var config = new Qiniu.Storage.Config()
            {
                Zone = _qiNiuConfig.GetZone(),
            };

            if (uploadPersistentOps != null)
            {
                config.UseHttps = uploadPersistentOps.IsUseHttps;

                config.ChunkSize = Get(uploadPersistentOps.ChunkUnit);
                if (uploadPersistentOps.MaxRetryTimes != -1)
                {
                    config.MaxRetryTimes = uploadPersistentOps.MaxRetryTimes;
                }

                if (uploadPersistentOps.MaxRetryTimes != -1)
                {
                    config.MaxRetryTimes = uploadPersistentOps.MaxRetryTimes;
                }
            }

            Qiniu.Storage.ChunkUnit Get(
                EInfrastructure.Core.Configuration.Ioc.Plugs.Storage.Enumerations.ChunkUnit chunkUnit)
            {
                int chunkUnits = chunkUnit.Id;

                return((Qiniu.Storage.ChunkUnit)chunkUnits);
            }

            return(config);
        }
Exemplo n.º 2
0
 /// <summary>
 /// /
 /// </summary>
 /// <param name="key">文件key</param>
 /// <param name="token"></param>
 /// <param name="uploadPersistentOps"></param>
 private UploadByTokenParam(string key, string token,
                            UploadPersistentOps uploadPersistentOps = null)
 {
     Key   = key;
     Token = token;
     UploadPersistentOps = uploadPersistentOps;
 }
Exemplo n.º 3
0
        /// <summary>
        /// 得到上传策略
        /// </summary>
        /// <param name="uploadPersistentOps">上传策略</param>
        /// <returns></returns>
        protected virtual UploadPersistentOps GetUploadPersistentOps(UploadPersistentOps uploadPersistentOps)
        {
            if (uploadPersistentOps == null)
            {
                uploadPersistentOps = new UploadPersistentOps();
            }

            if ((uploadPersistentOps.EnableCallback == null && _aLiYunStorageConfig.EnableCallback) ||
                uploadPersistentOps.EnableCallback == true)
            {
                if (uploadPersistentOps.EnableCallback == null && _aLiYunStorageConfig.EnableCallback)
                {
                    uploadPersistentOps.SetCallBack(Configuration.Ioc.Plugs.Storage.Enumerations
                                                    .CallbackBodyType
                                                    .FromValue <EInfrastructure.Core.Configuration.Ioc.Plugs.Storage.
                                                                Enumerations.CallbackBodyType>(_aLiYunStorageConfig
                                                                                               .CallbackBodyType)
                                                    ?.Name ??
                                                    Configuration.Ioc.Plugs.Storage.Enumerations
                                                    .CallbackBodyType.Json.Name, _aLiYunStorageConfig.CallbackHost,
                                                    _aLiYunStorageConfig.CallbackUrl, _aLiYunStorageConfig.CallbackBody);
                }
                else
                {
                    uploadPersistentOps.SetCallBack(uploadPersistentOps.CallbackBodyType,
                                                    uploadPersistentOps.CallbackHost, uploadPersistentOps.CallbackUrl,
                                                    uploadPersistentOps.CallbackBody);
                }
            }

            return(uploadPersistentOps);
        }
        /// <summary>
        /// 得到七牛配置文件
        /// </summary>
        /// <returns></returns>
        public Qiniu.Storage.Config GetConfig(UploadPersistentOps uploadPersistentOps = null)
        {
            var config = new Qiniu.Storage.Config()
            {
                Zone = QiNiuConfig.GetZone(),
            };

            if (uploadPersistentOps != null)
            {
                config.UseHttps = uploadPersistentOps.IsUseHttps;

                config.ChunkSize = Get(uploadPersistentOps.ChunkUnit);
                if (uploadPersistentOps.MaxRetryTimes != -1)
                {
                    config.MaxRetryTimes = uploadPersistentOps.MaxRetryTimes;
                }

                if (uploadPersistentOps.MaxRetryTimes != -1)
                {
                    config.MaxRetryTimes = uploadPersistentOps.MaxRetryTimes;
                }
            }

            ChunkUnit Get(ChunkUnitEnum chunkUnit)
            {
                int chunkUnits = (int)chunkUnit;

                return((ChunkUnit)chunkUnits);
            }

            return(config);
        }
        /// <summary>
        /// 得到文件上传额外参数
        /// </summary>
        /// <param name="uploadPersistentOps"></param>
        /// <returns></returns>
        protected PutExtra GetPutExtra(UploadPersistentOps uploadPersistentOps = null)
        {
            PutExtra putExtra = new PutExtra();

            if (uploadPersistentOps != null)
            {
                if (!string.IsNullOrEmpty(uploadPersistentOps.ResumeRecordFile))
                {
                    putExtra.ResumeRecordFile = uploadPersistentOps.ResumeRecordFile;
                }

                if (uploadPersistentOps.Params != null && uploadPersistentOps.Params.Count > 0)
                {
                    putExtra.Params = uploadPersistentOps.Params;
                }

                if (!string.IsNullOrEmpty(uploadPersistentOps.MimeType))
                {
                    putExtra.MimeType = uploadPersistentOps.MimeType;
                }

                if (uploadPersistentOps.ProgressAction != null)
                {
                    putExtra.ProgressHandler = (long uploadedBytes, long totalBytes) =>
                    {
                        uploadPersistentOps.ProgressAction(uploadedBytes, totalBytes);
                    };
                }

                if (uploadPersistentOps.UploadController != null)
                {
                    var             state = putExtra.UploadController();
                    UploadStateEnum uploadState;
                    if (state == UploadControllerAction.Activated)
                    {
                        uploadState = UploadStateEnum.Activated;
                    }
                    else if (state == UploadControllerAction.Aborted)
                    {
                        uploadState = UploadStateEnum.Aborted;
                    }
                    else
                    {
                        uploadState = UploadStateEnum.Suspended;
                    }

                    uploadPersistentOps.UploadController?.Invoke(uploadState);
                }

                if (uploadPersistentOps.MaxRetryTimes != -1)
                {
                    putExtra.MaxRetryTimes = uploadPersistentOps.MaxRetryTimes;
                }
            }

            return(putExtra);
        }
Exemplo n.º 6
0
        /// <summary>
        /// 获得ObjectMetadata
        /// </summary>
        /// <param name="uploadPersistentOps"></param>
        /// <returns></returns>
        protected ObjectMetadata GetCallbackMetadata(UploadPersistentOps uploadPersistentOps)
        {
            if (uploadPersistentOps.EnableCallback != null && uploadPersistentOps.EnableCallback.Value &&
                !string.IsNullOrEmpty(uploadPersistentOps.CallbackBody) &&
                !string.IsNullOrEmpty(uploadPersistentOps.CallbackUrl))
            {
                return(GetCallbackMetadata(uploadPersistentOps.CallbackUrl, uploadPersistentOps.CallbackBody));
            }

            return(null);
        }
Exemplo n.º 7
0
        /// <summary>
        /// /
        /// </summary>
        /// <param name="key">文件key</param>
        /// <param name="stream">文件流</param>
        /// <param name="token">上传凭证</param>
        /// <param name="isResume">是否允许续传</param>
        /// <param name="uploadPersistentOps"></param>
        public UploadByTokenParam(string key, Stream stream, string token,
                                  bool isResume = true,
                                  UploadPersistentOps uploadPersistentOps = null) : this(key, token, uploadPersistentOps)
        {
            if (stream == null)
            {
                throw new ArgumentNullException("stream cannot be empty");
            }

            Stream = stream;
        }
Exemplo n.º 8
0
        /// <summary>
        /// /
        /// </summary>
        /// <param name="key">文件key</param>
        /// <param name="byteArray">文件字符数组</param>
        /// <param name="token">文件上传凭证</param>
        /// <param name="isResume">是否允许续传</param>
        /// <param name="uploadPersistentOps">上传策略</param>
        public UploadByTokenParam(string key, byte[] byteArray, string token,
                                  bool isResume = true,
                                  UploadPersistentOps uploadPersistentOps = null) : this(key, token, uploadPersistentOps)
        {
            if (byteArray == null || byteArray.Length == 0)
            {
                throw new ArgumentNullException("byteArray cannot be empty");
            }

            ByteArray = byteArray;
            IsResume  = isResume;
        }
Exemplo n.º 9
0
        /// <summary>
        /// /
        /// </summary>
        /// <param name="key">文件key</param>
        /// <param name="byteArray">文件字符数组</param>
        /// <param name="token">文件Token</param>
        /// <param name="uploadPersistentOps">上传策略</param>
        public UploadByTokenParam(string key, byte[] byteArray, string token,
                                  UploadPersistentOps uploadPersistentOps = null)
        {
            if (byteArray == null || byteArray.Length == 0)
            {
                throw new ArgumentNullException("byteArray cannot be empty");
            }

            Key                 = key;
            ByteArray           = byteArray;
            Token               = token;
            UploadPersistentOps = uploadPersistentOps;
        }
Exemplo n.º 10
0
        /// <summary>
        /// /
        /// </summary>
        /// <param name="key">文件key</param>
        /// <param name="stream">文件流</param>
        /// <param name="token"></param>
        /// <param name="uploadPersistentOps"></param>
        public UploadByTokenParam(string key, Stream stream, string token,
                                  UploadPersistentOps uploadPersistentOps = null)
        {
            if (stream == null)
            {
                throw new ArgumentNullException("stream cannot be empty");
            }

            Key    = key;
            Stream = stream;
            Token  = token;
            UploadPersistentOps = uploadPersistentOps;
        }
Exemplo n.º 11
0
        /// <summary>
        /// 上传文件
        /// </summary>
        /// <param name="isResume"></param>
        /// <param name="funcAction"></param>
        /// <param name="uploadPersistentOps"></param>
        /// <returns></returns>
        private UploadResultDto Upload(bool isResume,
                                       Func <string, UploadPersistentOps, ObjectMetadata, PutObjectResult> funcAction,
                                       UploadPersistentOps uploadPersistentOps)
        {
            return(ToolCommon.GetResponse(() =>
            {
                var bucket = Core.Tools.GetBucket(_aLiYunConfig, uploadPersistentOps.Bucket);
                var persistentOps = base.GetUploadPersistentOps(uploadPersistentOps);
                var metadata = GetCallbackMetadata(persistentOps);
                PutObjectResult ret = funcAction.Invoke(bucket, persistentOps, metadata);
                if (ret.HttpStatusCode == HttpStatusCode.OK)
                {
                    return new UploadResultDto(true, null, "success");
                }

                return new UploadResultDto(false, ret, $"RequestId:{ret.RequestId}");
            }, (message, ex) => new UploadResultDto(false, ex, message)));
        }
 /// <summary>
 /// 
 /// </summary>
 /// <param name="key">文件key</param>
 /// <param name="file">文件信息</param>
 /// <param name="uploadPersistentOps">上传策略</param>
 public UploadByFormFileParam(string key, IFormFile file, UploadPersistentOps uploadPersistentOps = null)
 {
     Key = key;
     File = file;
     UploadPersistentOps = uploadPersistentOps;
 }
 /// <summary>
 /// 上传文件(前端上传,后台生成策略信息)
 /// </summary>
 /// <param name="key">文件地址</param>
 /// <param name="uploadPersistentOps">上传配置</param>
 public UploadPersistentOpsParam(string key, UploadPersistentOps uploadPersistentOps = null)
 {
     Key = key;
     UploadPersistentOps = uploadPersistentOps ?? new UploadPersistentOps();
 }
 /// <summary>
 /// 得到上传策略
 /// </summary>
 /// <param name="uploadPersistentOps">上传策略</param>
 /// <returns></returns>
 protected UploadPersistentOps GetUploadPersistentOps(UploadPersistentOps uploadPersistentOps)
 {
     return(uploadPersistentOps ?? new UploadPersistentOps());
 }
Exemplo n.º 15
0
 /// <summary>
 /// 根据文件流上传
 /// </summary>
 /// <param name="key">文件地址</param>
 /// <param name="stream">文件流</param>
 /// <param name="uploadPersistentOps">上传配置</param>
 public UploadByStreamParam(string key, Stream stream, UploadPersistentOps uploadPersistentOps = null)
 {
     Key    = key;
     Stream = stream;
     UploadPersistentOps = uploadPersistentOps;
 }
Exemplo n.º 16
0
 /// <summary>
 /// 根据文件流上传
 /// </summary>
 /// <param name="key">文件地址</param>
 /// <param name="byteArray">字节数组</param>
 /// <param name="uploadPersistentOps">上传配置</param>
 public UploadByByteArrayParam(string key, byte[] byteArray, UploadPersistentOps uploadPersistentOps = null)
 {
     Key                 = key;
     ByteArray           = byteArray;
     UploadPersistentOps = uploadPersistentOps;
 }
Exemplo n.º 17
0
        /// <summary>
        /// 得到上传策略
        /// </summary>
        /// <param name="uploadPersistentOps">上传策略</param>
        /// <returns></returns>
        protected virtual UploadPersistentOps GetUploadPersistentOps(UploadPersistentOps uploadPersistentOps)
        {
            if (uploadPersistentOps == null)
            {
                uploadPersistentOps = new UploadPersistentOps();
            }

            if (uploadPersistentOps.IsUseHttps == null)
            {
                uploadPersistentOps.IsUseHttps = _qiNiuConfig.IsUseHttps;
            }

            if (uploadPersistentOps.UseCdnDomains == null)
            {
                uploadPersistentOps.UseCdnDomains = _qiNiuConfig.UseCdnDomains;
            }

            if (uploadPersistentOps.IsAllowOverlap == null)
            {
                uploadPersistentOps.IsAllowOverlap = _qiNiuConfig.IsAllowOverlap;
            }

            if (uploadPersistentOps.ChunkUnit == null)
            {
                uploadPersistentOps.ChunkUnit = _qiNiuConfig.ChunkUnit;
            }

            if ((uploadPersistentOps.EnableCallback == null && _qiNiuConfig.EnableCallback) ||
                uploadPersistentOps.EnableCallback == true)
            {
                if (uploadPersistentOps.EnableCallback == null && _qiNiuConfig.EnableCallback)
                {
                    uploadPersistentOps.SetCallBack(CallbackBodyType
                                                    .FromValue <CallbackBodyType>(_qiNiuConfig.CallbackBodyType)
                                                    ?.Name ??
                                                    CallbackBodyType.Json.Name, _qiNiuConfig.CallbackHost,
                                                    _qiNiuConfig.CallbackUrl, _qiNiuConfig.CallbackBody);
                }
                else
                {
                    uploadPersistentOps.SetCallBack(uploadPersistentOps.CallbackBodyType,
                                                    uploadPersistentOps.CallbackHost, uploadPersistentOps.CallbackUrl,
                                                    uploadPersistentOps.CallbackBody);
                }
            }

            if (uploadPersistentOps.EnablePersistentNotifyUrl)
            {
                string persistentNotifyUrl = string.IsNullOrEmpty(uploadPersistentOps.PersistentNotifyUrl)
                    ? _qiNiuConfig.PersistentNotifyUrl
                    : uploadPersistentOps.PersistentNotifyUrl;
                uploadPersistentOps.SetPersistentNotifyUrl(persistentNotifyUrl);
            }

            if (uploadPersistentOps.EnablePersistentPipeline)
            {
                string persistentPipeline = string.IsNullOrEmpty(uploadPersistentOps.PersistentPipeline)
                    ? _qiNiuConfig.PersistentPipeline
                    : uploadPersistentOps.PersistentPipeline;
                uploadPersistentOps.SetPersistentPipeline(persistentPipeline);
            }

            return(uploadPersistentOps);
        }