public TencentCosStorageUploadProcessor(TencentCosStorageConfigure configure, CosXml client, IFileNameGenerator fileNameGenerator, ISubdirectoryGenerator subdirectoryGenerator, IFileValidator fileValidator)
 {
     Configure             = configure;
     Client                = client;
     FileNameGenerator     = fileNameGenerator;
     SubdirectoryGenerator = subdirectoryGenerator;
     FileValidator         = fileValidator;
 }
 private static void RegClient(this IServiceCollection services, TencentCosStorageConfigure configure)
 {
     services.AddSingleton(new CosXmlConfig.Builder()
                           .SetConnectionTimeoutMs(60000) //设置连接超时时间,单位毫秒,默认45000ms
                           .SetReadWriteTimeoutMs(40000)  //设置读写超时时间,单位毫秒,默认45000ms
                           .IsHttps(true)                 //设置默认 HTTPS 请求
                           .SetAppid(configure.AppId)     //设置腾讯云账户的账户标识 APPID
                           .SetRegion(configure.Region)   //设置一个默认的存储桶地域
                           .SetDebugLog(false)            //显示日志
                           .Build());
     services.AddSingleton <QCloudCredentialProvider>(sc => new DefaultQCloudCredentialProvider(configure.SecretId, configure.SecretKey, 600));
     services.AddScoped <CosXml>(sc => new CosXmlServer(sc.GetRequiredService <CosXmlConfig>(), sc.GetRequiredService <QCloudCredentialProvider>()));
 }
        public static IServiceCollection AddUploadTencentCOS(this IServiceCollection services, Action <TencentCosStorageConfigure> options)
        {
            services.AddUpload <TencentCosStorageUploadProcessor>();
            var config = new TencentCosStorageConfigure(services);

            options?.Invoke(config);
            services.AddSingleton(config);

            services.RegClient(config);

            services.AddSingleton <UploadConfigure>(config);
            return(services);
        }