Esempio n. 1
0
 protected virtual void CheckFileQuantity(int count, FileContainerConfiguration configuration)
 {
     if (count > configuration.MaxFileQuantityForEachUpload)
     {
         throw new UploadQuantityExceededLimitException(count, configuration.MaxFileQuantityForEachUpload);
     }
 }
Esempio n. 2
0
 protected virtual void CheckFileName(string fileName, FileContainerConfiguration configuration)
 {
     if (fileName.Contains(FileManagementConsts.DirectorySeparator))
     {
         throw new FileNameContainsSeparatorException(fileName, FileManagementConsts.DirectorySeparator);
     }
 }
Esempio n. 3
0
        public virtual FileContainerConfiguration ToConfiguration(FileStoringContainer container)
        {
            var fileProviderConfiguration = Options.Providers.GetConfiguration(container.Provider);

            Check.NotNull(fileProviderConfiguration, nameof(fileProviderConfiguration));

            var configuration = new FileContainerConfiguration()
            {
                Provider      = fileProviderConfiguration.Provider,
                IsMultiTenant = container.IsMultiTenant,
                HttpAccess    = container.HttpAccess
            };

            foreach (var item in container.Items)
            {
                var type  = fileProviderConfiguration.GetValue(item.Name).Type;
                var value = TypeHelper.ConvertFromString(type, item.Value);
                configuration.SetConfiguration(item.Name, value);
            }


            foreach (var namingNormalizer in fileProviderConfiguration.DefaultNamingNormalizers)
            {
                configuration.NamingNormalizers.Add(namingNormalizer);
            }

            return(configuration);
        }
Esempio n. 4
0
        protected virtual bool IsFileExtensionAllowed(string ext, FileContainerConfiguration configuration)
        {
            if (!configuration.FileExtensionsConfiguration.ContainsKey(ext))
            {
                return(!configuration.AllowOnlyConfiguredFileExtensions);
            }

            return(configuration.FileExtensionsConfiguration[ext]);
        }
Esempio n. 5
0
        public static FileContainerConfiguration UseMinio(
            this FileContainerConfiguration containerConfiguration,
            Action <MinioFileProviderConfiguration> minioConfigureAction)
        {
            containerConfiguration.Provider = MinioFileProviderConfigurationNames.ProviderName;
            containerConfiguration.NamingNormalizers.TryAdd <MinioFileNamingNormalizer>();

            minioConfigureAction(new MinioFileProviderConfiguration(containerConfiguration));

            return(containerConfiguration);
        }
Esempio n. 6
0
        public static FileContainerConfiguration UseAliyun(
            this FileContainerConfiguration containerConfiguration,
            Action <AliyunFileProviderConfiguration> aliyunConfigureAction)
        {
            containerConfiguration.Provider = AliyunFileProviderConfigurationNames.ProviderName;
            containerConfiguration.NamingNormalizers.TryAdd <AliyunFileNamingNormalizer>();

            aliyunConfigureAction(new AliyunFileProviderConfiguration(containerConfiguration));

            return(containerConfiguration);
        }
Esempio n. 7
0
        public static FileContainerConfiguration UseFileSystem(
            this FileContainerConfiguration containerConfiguration,
            Action <FileSystemFileProviderConfiguration> fileSystemConfigureAction)
        {
            containerConfiguration.Provider = FileSystemFileProviderConfigurationNames.ProviderName;
            containerConfiguration.NamingNormalizers.TryAdd <FileSystemFileNamingNormalizer>();

            fileSystemConfigureAction(new FileSystemFileProviderConfiguration(containerConfiguration));

            return(containerConfiguration);
        }
Esempio n. 8
0
        protected virtual Task SetFailIfUserIsNotPersonalContainerOwnerAsync(FileContainerConfiguration configuration,
                                                                             AuthorizationHandlerContext context, FileOperationInfoModel resource)
        {
            if (configuration.FileContainerType == FileContainerType.Private &&
                resource.OwnerUserId != context.User.FindUserId())
            {
                context.Fail();
            }

            return(Task.CompletedTask);
        }
        public static FileContainerConfiguration UseFastDFS(
            this FileContainerConfiguration containerConfiguration,
            Action <FastDFSFileProviderConfiguration> fastDFSConfigureAction)
        {
            containerConfiguration.Provider = FastDFSFileProviderConfigurationNames.ProviderName;
            containerConfiguration.NamingNormalizers.TryAdd <FastDFSFileNamingNormalizer>();

            fastDFSConfigureAction(new FastDFSFileProviderConfiguration(containerConfiguration));

            return(containerConfiguration);
        }
        public static FileContainerConfiguration UseS3(
            this FileContainerConfiguration containerConfiguration,
            Action <S3FileProviderConfiguration> s3ConfigureAction)
        {
            containerConfiguration.Provider = S3FileProviderConfigurationNames.ProviderName;
            containerConfiguration.NamingNormalizers.TryAdd <S3FileNamingNormalizer>();

            s3ConfigureAction(new S3FileProviderConfiguration(containerConfiguration));

            return(containerConfiguration);
        }
Esempio n. 11
0
 public static FileContainerConfiguration UseDatabase(
     this FileContainerConfiguration containerConfiguration)
 {
     containerConfiguration.Provider = DatabaseFileProviderConsts.ProviderName;
     return(containerConfiguration);
 }
Esempio n. 12
0
 protected virtual void CheckFileExtension(IEnumerable <string> fileExtensions, FileContainerConfiguration configuration)
 {
     foreach (var ext in fileExtensions.Where(ext => !IsFileExtensionAllowed(ext, configuration)))
     {
         throw new FileExtensionIsNotAllowedException(ext);
     }
 }
Esempio n. 13
0
        protected virtual void CheckFileSize(Dictionary <string, long> fileNameByteSizeMapping, FileContainerConfiguration configuration)
        {
            foreach (var pair in fileNameByteSizeMapping.Where(pair => pair.Value > configuration.MaxByteSizeForEachFile))
            {
                throw new FileSizeExceededLimitException(pair.Key, pair.Value, configuration.MaxByteSizeForEachFile);
            }

            var totalByteSize = fileNameByteSizeMapping.Values.Sum();

            if (totalByteSize > configuration.MaxByteSizeForEachUpload)
            {
                throw new UploadSizeExceededLimitException(totalByteSize, configuration.MaxByteSizeForEachUpload);
            }
        }
Esempio n. 14
0
        protected virtual IOss GetOssClient(FileContainerConfiguration fileContainerConfiguration)
        {
            var aliyunConfig = fileContainerConfiguration.GetAliyunConfiguration();

            return(OssClientFactory.Create(aliyunConfig));
        }
Esempio n. 15
0
 public static AliyunFileProviderConfiguration GetAliyunConfiguration(
     this FileContainerConfiguration containerConfiguration)
 {
     return(new AliyunFileProviderConfiguration(containerConfiguration));
 }
Esempio n. 16
0
 public static FileSystemFileProviderConfiguration GetFileSystemConfiguration(
     this FileContainerConfiguration containerConfiguration)
 {
     return(new FileSystemFileProviderConfiguration(containerConfiguration));
 }
Esempio n. 17
0
 public static AzureFileProviderConfiguration GetAzureConfiguration(
     this FileContainerConfiguration containerConfiguration)
 {
     return(new AzureFileProviderConfiguration(containerConfiguration));
 }
Esempio n. 18
0
 public static MinioFileProviderConfiguration GetMinioConfiguration(
     this FileContainerConfiguration containerConfiguration)
 {
     return(new MinioFileProviderConfiguration(containerConfiguration));
 }
 public static FastDFSFileProviderConfiguration GetFastDFSConfiguration(
     this FileContainerConfiguration containerConfiguration)
 {
     return(new FastDFSFileProviderConfiguration(containerConfiguration));
 }
 public static S3FileProviderConfiguration GetS3Configuration(
     this FileContainerConfiguration containerConfiguration)
 {
     return(new S3FileProviderConfiguration(containerConfiguration));
 }