【发布时间】:2013-03-18 09:38:42
【问题描述】:
我正在使用 Java Amazon SDK 与 S3 一起使用来存储上传的文件。我想保留原始文件名,并将其放在密钥的末尾,但我也在使用虚拟目录结构 - 类似于<dirname>/<uuid>/<originalFilename>。
问题是,当我想使用 api 生成预签名 URL 进行下载时:
URL url = s3Client.generatePresignedUrl(generatePresignedUrlRequest);
return url.toExternalForm();
sdk url 转义了整个密钥,包括斜杠。虽然它仍然有效,但这意味着下载的文件的名称包括整个密钥,而不是最后的原始文件名位。我知道在不转义斜杠的情况下应该可以做到这一点,但我试图避免重写 SDK 中已有的大量代码。有一个通用的解决方案吗?我知道我使用的网络应用程序遵循相同的模式并且没有斜线转义问题。
【问题讨论】:
-
如果存储桶具有允许匿名访问的 ACL,那么您可以通过以下模式检索文件://s3.amazonaws.com/
/ 。这就是你要找的吗? -
@JasonSperske 它在一个私有存储桶中。