我想从javascript(最终是Elm)上传到S3。我觉得好像在客户端中存储一个IAM用户密钥会产生风险(告诉我我是不是错了),但是有一个可以操纵密钥的服务器后端(并且只向他们知道已经过身份验证的人提供签名)。
但我在JS SDK中找不到任何利用服务器提供信息的内容,所以我想知道我是否认为这一切都错了?
另一种方法是创建一个POST表单,我已经掌握了它的基础知识,但AWS文档给出了纯粹基于代码的上传的印象,我应该使用auth标题。
我想要的是:
1) Drop files on webapp, pass filenames to (3)
2) use JS filereader to read content
3) make http request to server for a signed url for the filenames in (1)
4) use signed url to upload content to S3
答案 0 :(得分:1)
您应该使用POST文档查看基于浏览器的上传。
在服务器上,您创建一个包含到期详细信息的策略文档,并生成一个插入到表单中的上载签名,然后将表单提交给s3。
这样做意味着您可以将密钥存储在服务器上。
the documentation中的图表很好地解释了这个过程。
有关必填字段的详细信息,请参阅full documentation。