猿问

无法将名称中包含“[”的文件上传到 IBM Cloud Object Storage

我尝试使用以下代码上传到 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) 错误请求”


可以毫无问题地上传具有普通名称的文件,例如“test.txt”。

AWS S3 或其他与 S3 兼容的存储服务不会发生这种现象。

(但我只尝试过其他 S3 兼容服务之一......)


你能告诉我为什么我不能上传到ICOS以及有什么解决方案吗?


汪汪一只猫
浏览 158回答 2
2回答

白衣非少年

我想执行以下操作:- 上传源文件的名称包含符号“[”和“]”,但我不想更改文件名。但是,上传的目标文件名(= 对象键?)可以更改。- 我想使用“UploadDirectory”方法上传文件。我搜索了一种如何通过“UploadDirectory”方法上传的方法,并指定要在存储桶上创建的对象的键名。但我没有找到一个好的方法。我认为使用“UploadDirectory”方法,我无法指定要创建的对象的键名。(因此,我认为无法进行编码。)在ICOS上,是否无法使用“UploadDirectory”方法上传文件名中包含“[”或“]”的文件?
随时随地看视频慕课网APP
我要回答