2017-06-03 39 views
0

我想知道使用POST或PUT请求将文件上传到亚马逊网络服务S3的优点和缺点。AWS S3:我应该使用POST或PUT请求上传的文件?

我已经读了一些质疑SO像this one,但我想使用AWS API时知道具体差异。

我设法同时使用,但几乎看不到差异。我使用的是通过AJAX都PUT和POST和XMLHttpRequest对象,直接从用Node.js的后端生成签名的浏览器上传。

我注意到的区别是,当我生成签名时,我无法用PUT限制服务器端的内容类型和长度,但这可能是因为我现在正在学习它。

+0

中的API设计准则方面,POST请求用于将数据发送到服务器,例如,使用HTML表单的客户信息,文件上传等。 PUT请求用于用上传的内容替换目标资源的所有当前表示。 –

+0

是的,但我的问题更多的AWS特定。我想要在AWS S3中使用两者的优点和缺点 –

+0

*我注意到的差异是,当我生成签名时,我无法用PUT限制内容类型和长度服务器端。*问题:您是否使用签名版本2或4?如果使用查询字符串,则可以通过查看'Authorization:AWS4-HMAC-SHA256 ...'或'X-Amz-Algorithm = AWS4-HMAC-SHA256'来识别V4签名。 –

回答

0

除了你注意到没有,使用POST时的差异,你得到的回应包含对象键名。如果您并行上传多个对象,在回调中确定上载是否成功,这非常有用。

也为访问控制,你可以使用POST和PUT不同(例如,不使对象修改,而只允许创建)

+0

因此,对于POST,我将拥有更多的控制权吗?在这种情况下,我为什么要使用PUT? –

+0

对于访问控制,授予可以创建和更新的权限将很有用 – Ashan