diff --git a/framework/src/Volo.Abp.BlobStoring.Aliyun/Volo/Abp/BlobStoring/Aliyun/AliyunBlobNamingNormalizer.cs b/framework/src/Volo.Abp.BlobStoring.Aliyun/Volo/Abp/BlobStoring/Aliyun/AliyunBlobNamingNormalizer.cs index b456d7abb6..cf8ff42973 100644 --- a/framework/src/Volo.Abp.BlobStoring.Aliyun/Volo/Abp/BlobStoring/Aliyun/AliyunBlobNamingNormalizer.cs +++ b/framework/src/Volo.Abp.BlobStoring.Aliyun/Volo/Abp/BlobStoring/Aliyun/AliyunBlobNamingNormalizer.cs @@ -1,46 +1,51 @@ -using System.Text.RegularExpressions; +using System.Globalization; +using System.Text.RegularExpressions; using Volo.Abp.DependencyInjection; +using Volo.Abp.Localization; namespace Volo.Abp.BlobStoring.Aliyun { public class AliyunBlobNamingNormalizer : IBlobNamingNormalizer, ITransientDependency { /// - /// Container names can contain only letters, numbers, and the dash (-) character - /// they can't start or end with the dash (-) character + /// Container names can contain only letters, numbers, and the dash (-) character + /// they can't start or end with the dash (-) character /// Container names must be from 3 through 63 characters long /// public virtual string NormalizeContainerName(string containerName) { - // All letters in a container name must be lowercase. - containerName = containerName.ToLower(); + using (CultureHelper.Use(CultureInfo.InvariantCulture)) + { + // All letters in a container name must be lowercase. + containerName = containerName.ToLower(); - // Container names can contain only letters, numbers, and the dash (-) character. - containerName = Regex.Replace(containerName, "[^a-z0-9-]", string.Empty); + // Container names can contain only letters, numbers, and the dash (-) character. + containerName = Regex.Replace(containerName, "[^a-z0-9-]", string.Empty); - // Every dash (-) character must be immediately preceded and followed by a letter or number; - // consecutive dashes are not permitted in container names. - // Container names must start or end with a letter or number - containerName = Regex.Replace(containerName, "-{2,}", "-"); - containerName = Regex.Replace(containerName, "^-", string.Empty); - containerName = Regex.Replace(containerName, "-$", string.Empty); + // Every dash (-) character must be immediately preceded and followed by a letter or number; + // consecutive dashes are not permitted in container names. + // Container names must start or end with a letter or number + containerName = Regex.Replace(containerName, "-{2,}", "-"); + containerName = Regex.Replace(containerName, "^-", string.Empty); + containerName = Regex.Replace(containerName, "-$", string.Empty); - // Container names must be from 3 through 63 characters long. - if (containerName.Length < 3) - { - var length = containerName.Length; - for (var i = 0; i < 3 - length; i++) + // Container names must be from 3 through 63 characters long. + if (containerName.Length < 3) { - containerName += "0"; + var length = containerName.Length; + for (var i = 0; i < 3 - length; i++) + { + containerName += "0"; + } } - } - if (containerName.Length > 63) - { - containerName = containerName.Substring(0, 63); - } + if (containerName.Length > 63) + { + containerName = containerName.Substring(0, 63); + } - return containerName; + return containerName; + } } public virtual string NormalizeBlobName(string blobName) diff --git a/framework/src/Volo.Abp.BlobStoring.Aws/Volo/Abp/BlobStoring/Aws/AwsBlobNamingNormalizer.cs b/framework/src/Volo.Abp.BlobStoring.Aws/Volo/Abp/BlobStoring/Aws/AwsBlobNamingNormalizer.cs index cd8eca021e..3779f9ff70 100644 --- a/framework/src/Volo.Abp.BlobStoring.Aws/Volo/Abp/BlobStoring/Aws/AwsBlobNamingNormalizer.cs +++ b/framework/src/Volo.Abp.BlobStoring.Aws/Volo/Abp/BlobStoring/Aws/AwsBlobNamingNormalizer.cs @@ -1,5 +1,7 @@ -using System.Text.RegularExpressions; +using System.Globalization; +using System.Text.RegularExpressions; using Volo.Abp.DependencyInjection; +using Volo.Abp.Localization; namespace Volo.Abp.BlobStoring.Aws { @@ -10,35 +12,38 @@ namespace Volo.Abp.BlobStoring.Aws /// public virtual string NormalizeContainerName(string containerName) { - // All letters in a container name must be lowercase. - containerName = containerName.ToLower(); + using (CultureHelper.Use(CultureInfo.InvariantCulture)) + { + // All letters in a container name must be lowercase. + containerName = containerName.ToLower(); - // Container names can contain only letters, numbers, and the dash (-) character. - containerName = Regex.Replace(containerName, "[^a-z0-9-]", string.Empty); + // Container names can contain only letters, numbers, and the dash (-) character. + containerName = Regex.Replace(containerName, "[^a-z0-9-]", string.Empty); - // Every dash (-) character must be immediately preceded and followed by a letter or number; - // consecutive dashes are not permitted in container names. - // Container names must start or end with a letter or number - containerName = Regex.Replace(containerName, "-{2,}", "-"); - containerName = Regex.Replace(containerName, "^-", string.Empty); - containerName = Regex.Replace(containerName, "-$", string.Empty); + // Every dash (-) character must be immediately preceded and followed by a letter or number; + // consecutive dashes are not permitted in container names. + // Container names must start or end with a letter or number + containerName = Regex.Replace(containerName, "-{2,}", "-"); + containerName = Regex.Replace(containerName, "^-", string.Empty); + containerName = Regex.Replace(containerName, "-$", string.Empty); - // Container names must be from 3 through 63 characters long. - if (containerName.Length < 3) - { - var length = containerName.Length; - for (var i = 0; i < 3 - length; i++) + // Container names must be from 3 through 63 characters long. + if (containerName.Length < 3) { - containerName += "0"; + var length = containerName.Length; + for (var i = 0; i < 3 - length; i++) + { + containerName += "0"; + } } - } - if (containerName.Length > 63) - { - containerName = containerName.Substring(0, 63); - } + if (containerName.Length > 63) + { + containerName = containerName.Substring(0, 63); + } - return containerName; + return containerName; + } } /// diff --git a/framework/src/Volo.Abp.BlobStoring.Azure/Volo/Abp/BlobStoring/Azure/AzureBlobNamingNormalizer.cs b/framework/src/Volo.Abp.BlobStoring.Azure/Volo/Abp/BlobStoring/Azure/AzureBlobNamingNormalizer.cs index 43b479e08e..767a7b6fea 100644 --- a/framework/src/Volo.Abp.BlobStoring.Azure/Volo/Abp/BlobStoring/Azure/AzureBlobNamingNormalizer.cs +++ b/framework/src/Volo.Abp.BlobStoring.Azure/Volo/Abp/BlobStoring/Azure/AzureBlobNamingNormalizer.cs @@ -1,5 +1,7 @@ -using System.Text.RegularExpressions; +using System.Globalization; +using System.Text.RegularExpressions; using Volo.Abp.DependencyInjection; +using Volo.Abp.Localization; namespace Volo.Abp.BlobStoring.Azure { @@ -10,35 +12,38 @@ namespace Volo.Abp.BlobStoring.Azure /// public virtual string NormalizeContainerName(string containerName) { - // All letters in a container name must be lowercase. - containerName = containerName.ToLower(); + using (CultureHelper.Use(CultureInfo.InvariantCulture)) + { + // All letters in a container name must be lowercase. + containerName = containerName.ToLower(); - // Container names can contain only letters, numbers, and the dash (-) character. - containerName = Regex.Replace(containerName, "[^a-z0-9-]", string.Empty); + // Container names can contain only letters, numbers, and the dash (-) character. + containerName = Regex.Replace(containerName, "[^a-z0-9-]", string.Empty); - // Every dash (-) character must be immediately preceded and followed by a letter or number; - // consecutive dashes are not permitted in container names. - // Container names must start or end with a letter or number - containerName = Regex.Replace(containerName, "-{2,}", "-"); - containerName = Regex.Replace(containerName, "^-", string.Empty); - containerName = Regex.Replace(containerName, "-$", string.Empty); + // Every dash (-) character must be immediately preceded and followed by a letter or number; + // consecutive dashes are not permitted in container names. + // Container names must start or end with a letter or number + containerName = Regex.Replace(containerName, "-{2,}", "-"); + containerName = Regex.Replace(containerName, "^-", string.Empty); + containerName = Regex.Replace(containerName, "-$", string.Empty); - // Container names must be from 3 through 63 characters long. - if (containerName.Length < 3) - { - var length = containerName.Length; - for (var i = 0; i < 3 - length; i++) + // Container names must be from 3 through 63 characters long. + if (containerName.Length < 3) { - containerName += "0"; + var length = containerName.Length; + for (var i = 0; i < 3 - length; i++) + { + containerName += "0"; + } } - } - if (containerName.Length > 63) - { - containerName = containerName.Substring(0, 63); - } + if (containerName.Length > 63) + { + containerName = containerName.Substring(0, 63); + } - return containerName; + return containerName; + } } /// diff --git a/framework/src/Volo.Abp.BlobStoring.FileSystem/Volo/Abp/BlobStoring/FileSystem/FileSystemBlobNamingNormalizer.cs b/framework/src/Volo.Abp.BlobStoring.FileSystem/Volo/Abp/BlobStoring/FileSystem/FileSystemBlobNamingNormalizer.cs index f7d273dca7..94c19b07f8 100644 --- a/framework/src/Volo.Abp.BlobStoring.FileSystem/Volo/Abp/BlobStoring/FileSystem/FileSystemBlobNamingNormalizer.cs +++ b/framework/src/Volo.Abp.BlobStoring.FileSystem/Volo/Abp/BlobStoring/FileSystem/FileSystemBlobNamingNormalizer.cs @@ -1,8 +1,10 @@ using System; +using System.Globalization; using System.Runtime; using System.Runtime.InteropServices; using System.Text.RegularExpressions; using Volo.Abp.DependencyInjection; +using Volo.Abp.Localization; namespace Volo.Abp.BlobStoring.FileSystem { @@ -27,15 +29,18 @@ namespace Volo.Abp.BlobStoring.FileSystem protected virtual string Normalize(string fileName) { - var os = _iosPlatformProvider.GetCurrentOSPlatform(); - if (os == OSPlatform.Windows) + using (CultureHelper.Use(CultureInfo.InvariantCulture)) { - // A filename cannot contain any of the following characters: \ / : * ? " < > | - // In order to support the directory included in the blob name, remove / and \ - fileName = Regex.Replace(fileName, "[:\\*\\?\"<>\\|]", string.Empty); - } + var os = _iosPlatformProvider.GetCurrentOSPlatform(); + if (os == OSPlatform.Windows) + { + // A filename cannot contain any of the following characters: \ / : * ? " < > | + // In order to support the directory included in the blob name, remove / and \ + fileName = Regex.Replace(fileName, "[:\\*\\?\"<>\\|]", string.Empty); + } - return fileName; + return fileName; + } } } } diff --git a/framework/src/Volo.Abp.BlobStoring.Minio/Volo/Abp/BlobStoring/Minio/MinioBlobNamingNormalizer.cs b/framework/src/Volo.Abp.BlobStoring.Minio/Volo/Abp/BlobStoring/Minio/MinioBlobNamingNormalizer.cs index d350910105..c4df24f91a 100644 --- a/framework/src/Volo.Abp.BlobStoring.Minio/Volo/Abp/BlobStoring/Minio/MinioBlobNamingNormalizer.cs +++ b/framework/src/Volo.Abp.BlobStoring.Minio/Volo/Abp/BlobStoring/Minio/MinioBlobNamingNormalizer.cs @@ -1,5 +1,7 @@ -using System.Text.RegularExpressions; +using System.Globalization; +using System.Text.RegularExpressions; using Volo.Abp.DependencyInjection; +using Volo.Abp.Localization; namespace Volo.Abp.BlobStoring.Minio { @@ -10,35 +12,38 @@ namespace Volo.Abp.BlobStoring.Minio /// public virtual string NormalizeContainerName(string containerName) { - // All letters in a container name must be lowercase. - containerName = containerName.ToLower(); + using (CultureHelper.Use(CultureInfo.InvariantCulture)) + { + // All letters in a container name must be lowercase. + containerName = containerName.ToLower(); - // Container names can contain only letters, numbers, and the dash (-) character. - containerName = Regex.Replace(containerName, "[^a-z0-9-]", string.Empty); + // Container names can contain only letters, numbers, and the dash (-) character. + containerName = Regex.Replace(containerName, "[^a-z0-9-]", string.Empty); - // Every dash (-) character must be immediately preceded and followed by a letter or number; - // consecutive dashes are not permitted in container names. - // Container names must start or end with a letter or number - containerName = Regex.Replace(containerName, "-{2,}", "-"); - containerName = Regex.Replace(containerName, "^-", string.Empty); - containerName = Regex.Replace(containerName, "-$", string.Empty); + // Every dash (-) character must be immediately preceded and followed by a letter or number; + // consecutive dashes are not permitted in container names. + // Container names must start or end with a letter or number + containerName = Regex.Replace(containerName, "-{2,}", "-"); + containerName = Regex.Replace(containerName, "^-", string.Empty); + containerName = Regex.Replace(containerName, "-$", string.Empty); - // Container names must be from 3 through 63 characters long. - if (containerName.Length < 3) - { - var length = containerName.Length; - for (var i = 0; i < 3 - length; i++) + // Container names must be from 3 through 63 characters long. + if (containerName.Length < 3) { - containerName += "0"; + var length = containerName.Length; + for (var i = 0; i < 3 - length; i++) + { + containerName += "0"; + } } - } - if (containerName.Length > 63) - { - containerName = containerName.Substring(0, 63); - } + if (containerName.Length > 63) + { + containerName = containerName.Substring(0, 63); + } - return containerName; + return containerName; + } } ///