我想知道使用POST或PUT请求将文件上传到Amazon Web Services S3的优缺点。
我已经阅读了一些像this one这样的问题,但我想知道使用AWS API时的具体差异。
我设法使用两者,但几乎看不出差异。我通过AJAX和XMLHTTPRequest对象同时使用PUT和POST,使用node.js后端直接从浏览器上传,生成签名。
我注意到的不同之处在于,当我生成签名时,我无法使用PUT限制内容类型和长度服务器端,但这可能是因为我现在只是学习它。
答案 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(例如,不允许对象修改,只允许创建)