为包含空格的文件生成预签名的S3 URL

时间:2016-09-17 03:26:39

标签: java amazon-web-services amazon-s3

我尝试生成预先签名的URL链接以传递给客户端。只要文件不包含空格,我的逻辑就会很好用。但是,如果是的话,我会得到一个"指定的密钥不存在。"错误。

要清楚,我正在获取URL并解析它。因此,当我得到它时,键看起来像这样:

mybucket/my+file+with+spaces.pdf

因此,S3 SDK似乎可以使用它们并将它们编码为%2b,因此当点击链接时它不会识别路径。如果我重新编写链接,那就是' +'我收到以下错误:

  

我们计算的请求签名与您提供的签名不符。检查您的密钥和签名方法。

1 个答案:

答案 0 :(得分:0)

好吧,我找到了自己问题的答案。如果你只是用&#34替换+; "你会得到正确的结果。

objectKey = file.replace("+", " ");