public static IServiceCollection AddChunkedUploadLocalStorage(this IServiceCollection services, Action <ChunkedUploadLocalStorageConfigure> options)
        {
            services.AddUpload <LocalStorageChunkedUploadProcessor>();
            services.AddScoped(typeof(IMergeHandler), typeof(MergeHandler));
            services.AddScoped <ICheckChunksProcessor, LocalStorageCheckChunksProcessor>();
            services.AddScoped <ICheckChunkProcessor, LocalStorageCheckChunkProcessor>();
            services.AddScoped <IUploadCompletedHandler, ChunkUploadCompletedHandler>();
            services.AddScoped <IMergeProcessor, LocalStorageMergeProcessor>();
            var config = new ChunkedUploadLocalStorageConfigure(services);

            options?.Invoke(config);
            if (string.IsNullOrWhiteSpace(config.RootDirectory))
            {
                throw new ArgumentNullException(nameof(config.RootDirectory));
            }
            services.AddSingleton <UploadConfigure>(config);
            return(services.AddSingleton(config));
        }
示例#2
0
 public LocalStorageCheckChunksProcessor(ChunkedUploadLocalStorageConfigure configure)
 {
     Configure = configure;
 }
 public LocalStorageChunkedUploadProcessor(ChunkedUploadLocalStorageConfigure configure, IFileValidator fileValidator)
 {
     Configure     = configure;
     FileValidator = fileValidator;
 }
示例#4
0
 public LocalStorageMergeProcessor(ChunkedUploadLocalStorageConfigure configure, IFileNameGenerator fileNameGenerator, ISubdirectoryGenerator subdirectoryGenerator)
 {
     Configure             = configure;
     FileNameGenerator     = fileNameGenerator;
     SubdirectoryGenerator = subdirectoryGenerator;
 }