在知道密钥之前,无法获得S3的签名URL

时间:2014-08-06 21:09:37

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

我允许人们将文件发布到我的S3帐户,但我不知道他们要发布的文件名。

如何提前为他们获取签名网址,以便他们可以下载他们发布的文件?我想提前做这件事,因为我不想再次点击我的服务器了。

我正在使用ruby aws sdk。

2 个答案:

答案 0 :(得分:1)

你不能。

您可以从S3上已存在的文件生成签名URL。在知道URL将是什么之前,您无法生成URL。

答案 1 :(得分:0)

虽然您无法在不知道密钥的情况下分发预签名网址,但您可以使用S3 POST technique生成签名策略,然后可以使用该策略上传文件。这需要构建一个简单的Web表单或其他可以创建HTTP POST请求的工具。

理想情况下,您可以为每个用户创建单独的签名策略文档,这样您就可以单独撤消访问权限。此外,该策略允许您约束最大文件大小,键前缀,文件类型和其他内容。