【发布时间】:2018-11-04 07:54:30
【问题描述】:
我尝试使用以下代码上传到 IBM Cloud Object Storage (ICOS),但有些文件无法上传。 失败的文件在文件名中包含符号“[”或“]”。
TransferUtility Utl = new TransferUtility(objClient);
TransferUtilityUploadDirectoryRequest request = new TransferUtilityUploadDirectoryRequest
{
BucketName = "Correct Backet name"
Directory = "Correct directory name" ex. "C:\\testd1\\testd2"
KeyPrefix = "Correct prefix"
SearchOption = SearchOption.AllDirectories,
SearchPattern = "*.*"
};
Utl.UploadDirectory(request);
语言:.NET C#
API:AWSSDK.Core 3.3.22.5、AWSSDK.S3 3.3.18.2
异常名称:Amazon.S3.AmazonS3Exception
消息:“无效参数”
InnerException 名称:Amazon.Runtime.Internal.HttpErrorResponseException
消息:“远程服务器返回错误:(400) Bad Request”
可以正常上传“test.txt”等普通名称的文件。
AWS S3 或其他兼容 S3 的存储服务不会出现这种现象。
(但我只尝试过其他 S3 兼容服务之一......)
你能告诉我为什么我不能上传到ICOS吗?有什么解决办法?
最好的问候。
【问题讨论】:
-
就个人而言,我会考虑对文件名进行散列处理,或去除非字母数字字符。那行得通吗?不幸的是,我的 C# 很弱,所以我无法提供一个示例来说明您如何做到这一点,但无论如何这可能是一种很好的做法。
标签: c# ibm-cloud object-storage