我直接从浏览器执行分段上传到 S3,即绕过我的后端。
我的 JS 代码向 S3 发送握手请求(POST),然后以 5MB 的块(每个 PUT)上传文件,最终完成文件(POST)。
效果很好。您可以猜到,对 S3 的每个请求(握手、部分上传和最终确定)都必须签名。在 JS 中生成签名当然是不可能的,因为它会暴露我的 AWS 密钥。
到目前为止,我正在做的事情如下:在向 S3 发出每个请求之前,我向我自己的后端 (to /sign?method=HTTPMethod&path=URLToSign
) 发送一个请求,该后端返回签名字符串。这样,所有 AWS 凭证都应该保留在后端。
我的问题如下:这安全吗?