Ejemplo n.º 1
0
        /// <summary>
        /// 加载UCloud服务
        /// </summary>
        /// <param name="services"></param>
        /// <param name="action"></param>
        public static IServiceCollection AddUCloudStorage(this IServiceCollection services,
                                                          Action <UCloudStorageConfig> action)
        {
            UCloudStorageConfig uCloudStorageConfig = new UCloudStorageConfig();

            action.Invoke(uCloudStorageConfig);
            return(services.AddUCloudStorage(() => uCloudStorageConfig));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 设置请求头
        /// </summary>
        /// <param name="request"></param>
        /// <param name="ext">文件扩展名</param>
        /// <param name="uCloudConfig">配置信息</param>
        /// <param name="key">文件地址</param>
        /// <param name="httpVerb"></param>
        internal static void SetHeaders(HttpWebRequest request, string ext, UCloudStorageConfig uCloudConfig, string key,
                                        string httpVerb)
        {
            request.UserAgent = uCloudConfig.GetUserAgent();
            if (ext != string.Empty)
            {
                request.ContentType = MimeTypeCommon.GetMimeType(ext);
            }

            request.Method = httpVerb;
            request.Headers.Add("Authorization",
                                Digest.SignRequst(request, RequestHeadType.HEAD_FIELD_CHECK, uCloudConfig, key));
        }
Ejemplo n.º 3
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="logService"></param>
 /// <param name="uCloudConfig"></param>
 public PictureService(ICollection <ILogService> logService, UCloudStorageConfig uCloudConfig) : base(logService,
                                                                                                      uCloudConfig)
 {
 }
 /// <summary>
 /// UCloud存储实现类
 /// </summary>
 public StorageProvider(ICollection <ILogProvider> logService, UCloudStorageConfig uCloudStorageConfig) : base(
         logService,
         uCloudStorageConfig)
 {
 }
Ejemplo n.º 5
0
        /// <summary>
        /// sign请求
        /// </summary>
        /// <param name="request"></param>
        /// <param name="type"></param>
        /// <param name="uCloudConfig"></param>
        /// <param name="key"></param>
        /// <returns></returns>
        internal static string SignRequst(HttpWebRequest request, Utils.RequestHeadType type, UCloudStorageConfig uCloudConfig,
                                          string key)
        {
            string authorization = string.Empty;
            string stringToSign  = string.Empty;

            switch (type)
            {
            case Utils.RequestHeadType.HEAD_FIELD_CHECK:
                authorization += "UCloud ";
                authorization += uCloudConfig.UCloudPublicKey;
                authorization += ":";
                stringToSign   = request.Method + "\n" + request.Headers.Get("Content-MD5") + "\n";
                stringToSign  += request.ContentType;
                stringToSign  += "\n";
                stringToSign  += "\n";
                stringToSign  += CanonicalizedUCloudHeaders(request.Headers);
                stringToSign  += CanonicalizedResource(uCloudConfig.Bucket, key);
                break;

            default:
                break;
            }

            HMACSHA1 hmac = new HMACSHA1(Encoding.ASCII.GetBytes(uCloudConfig.UCloudPrivateKey));

            Byte[] hashValue = hmac.ComputeHash(Encoding.UTF8.GetBytes(stringToSign));
            string signature = Convert.ToBase64String(hashValue);

            return(authorization + signature);
        }
 /// <summary>
 /// UCloud存储实现类
 /// </summary>
 public StorageProvider(ILogService logService, UCloudStorageConfig uCloudStorageConfig) : base(logService,
                                                                                                uCloudStorageConfig)
 {
 }
 /// <summary>
 /// 基类UCloud实现
 /// </summary>
 public BaseStorageProvider(ICollection <ILogService> logServices, UCloudStorageConfig uCloudConfig)
 {
     LogService   = InjectionSelectionCommon.GetImplement(logServices);
     UCloudConfig = uCloudConfig;
     ValidationCommon.Check(uCloudConfig, "Uc云存储配置异常", HttpStatus.Err.Name);
 }
 /// <summary>
 /// UCloud存储实现类
 /// </summary>
 public StorageProvider(ILogger <StorageProvider> logger, UCloudStorageConfig uCloudStorageConfig) : base(
         logger,
         uCloudStorageConfig)
 {
 }
Ejemplo n.º 9
0
 /// <summary>
 /// 得到url地址
 /// </summary>
 /// <param name="uCloudConfig">配置信息</param>
 /// <param name="key">秘钥</param>
 /// <returns></returns>
 internal static string GetUrl(UCloudStorageConfig uCloudConfig, string key)
 {
     return(@"http://" + uCloudConfig.Bucket + uCloudConfig.UcloudProxySuffix +
            (key == string.Empty ? "" : (@"/" + key)));
 }
 /// <summary>
 /// 基类UCloud实现
 /// </summary>
 public BaseStorageProvider(ILogger logger, UCloudStorageConfig uCloudConfig)
 {
     _logger      = logger;
     UCloudConfig = uCloudConfig;
     ValidationCommon.Check(uCloudConfig, "Uc云存储配置异常", HttpStatus.Err.Name);
 }
 /// <summary>
 /// 基类UCloud实现
 /// </summary>
 public BaseStorageProvider(UCloudStorageConfig uCloudConfig)
 {
 }
 public PictureService(ILogService logService, UCloudStorageConfig uCloudConfig) : base(logService,
                                                                                        uCloudConfig)
 {
 }
 /// <summary>
 ///
 /// </summary>
 /// <param name="logger"></param>
 /// <param name="uCloudConfig"></param>
 public PictureProvider(ILogger logger, UCloudStorageConfig uCloudConfig) : base(logger,
                                                                                 uCloudConfig)
 {
 }
Ejemplo n.º 14
0
 /// <summary>
 /// 基类UCloud实现
 /// </summary>
 public BaseStorageProvider(ILogService logService, UCloudStorageConfig uCloudConfig)
 {
     _logService   = logService;
     _uCloudConfig = uCloudConfig;
     new UCloudConfigValidator().Validate(_uCloudConfig).Check();
 }