AWS S3:我应该使用POST或PUT请求上传文件吗?

时间:2017-06-03 07:53:08

标签: javascript ajax amazon-web-services amazon-s3

我想知道使用POST或PUT请求将文件上传到Amazon Web Services S3的优缺点。

我已经阅读了一些像this one这样的问题,但我想知道使用AWS API时的具体差异。

我设法使用两者,但几乎看不出差异。我通过AJAX和XMLHTTPRequest对象同时使用PUT和POST,使用node.js后端直接从浏览器上传,生成签名。

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

2 个答案:

答案 0 :(得分:1)

要将对象从应用程序上传到 Amazon S3 存储桶,您应该使用指定编程语言的 AWS 开发工具包。例如,如果您使用 JavaScript 构建应用程序,则可以使用适用于 JavaScript 的 AWS 开发工具包并使用其客户端上传对象。

Uploading photos to Amazon S3 from a browser

同样,如果您要构建 Spring BOOT 应用程序,请使用适用于 Java V2 的 AWS 开发工具包上传对象。此处显示了一个示例:

Creating an example AWS photo analyzer application using the AWS SDK for Java

答案 1 :(得分:0)

除了您注意到的差异,使用POST时,您获得的响应包含对象键名称。如果您并行上传多个对象,以便在回调中识别哪个上载成功,这将非常有用。

同样对于访问控制,您可以使用不同的POST和PUT(例如,不允许对象修改,只允许创建)