Java AmazonS3RESTAPI-路径中有空间的资源
对于名称(路径)中包含空格的AmazonS3资源,正确的处理方法是什么 我使用了文章中链接的代码示例中的说明,当我获得一个路径不包含空格的资源时,它们可以正常工作,例如:Java AmazonS3RESTAPI-路径中有空间的资源,java,rest,amazon-web-services,amazon-s3,Java,Rest,Amazon Web Services,Amazon S3,对于名称(路径)中包含空格的AmazonS3资源,正确的处理方法是什么 我使用了文章中链接的代码示例中的说明,当我获得一个路径不包含空格的资源时,它们可以正常工作,例如:https://s3.eu-central-1.amazonaws.com/my_bucket/Folder01/name_WITHOUT_spaces.txt。 但是,完全相同的代码不适用于路径中有空格的资源,例如:https://s3.eu-central-1.amazonaws.com/my_bucket/Foo+1/na
https://s3.eu-central-1.amazonaws.com/my_bucket/Folder01/name_WITHOUT_spaces.txt
。
但是,完全相同的代码不适用于路径中有空格的资源,例如:https://s3.eu-central-1.amazonaws.com/my_bucket/Foo+1/name+with+space.txt
我尝试了几种有/没有逃逸空格字符的方法
- “Foo 1/name with space.txt”:签名生成器将空格转义到“+”,构建类似于
Foo+1/name+with+space.txt的内容,然后我得到响应:
HttpVersionNotSupported
不支持指定的HTTP版本代码>
- “Foo+1/name+with+space.txt”:签名生成器将转义“+”字符生成,例如
Foo%2B1/name%2Bwith%2Bspace.txt
- “Foo%201/name%20with%20space.txt”:签名生成器再次转义“%”字符,生成类似于
Foo%25201/name%2520with%2520space.txt的内容
在最后两种情况下,我都得到了回应:
SignatureDesNotMatch
我们计算的请求签名与您提供的签名不匹配。检查您的密钥和签名方法代码>
我做错了什么?
我应该如何处理/转义空格字符
谢谢。如果你在谷歌上搜索“aws s3 key with spaces”,你会发现很多人对s3和spaces感到失望。我不知道你的答案是否在那些搜索结果中。我们的解决方案是不使用空格(但显然,这可能不适合您)。