当前位置: 首页 > 知识库问答 >
问题:

上传文件到S3的upload()和putObject()的区别?

赵选
2023-03-14

在aws-sdk的S3类中,上传()putObject()有什么区别?它们似乎做同样的事情。为什么我可能更喜欢一个而不是另一个?

共有3个答案

微生宝
2023-03-14

在寻找相同的信息时,我遇到了:https://aws.amazon.com/blogs/developer/uploading-files-to-amazon-s3/

这个源代码有点过时了(引用< code>upload_file()和< code > put()——或者可能是Ruby SDK?),但看起来< code>putObject()是为比< code>upload()更小的对象设计的。

它推荐 upload() 并指定原因:

这是使用SDK将文件上传到bucket的推荐方法。使用这种方法有以下好处:

  • 管理大于15MB的对象的多部分上传。
  • 以二进制模式正确打开文件以避免编码问题。
  • 使用多个线程并行上传部分大型对象。

然后介绍放置对象() 操作:

对于较小的对象,您可以选择使用< code>#put来代替。

编辑:我在. abort()上的. abort()操作遇到问题,发现这很有帮助:中止/停止亚马逊aws s3上传,aws sdk javascript

现在我从https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Request.html的各种其他事件也被触发了!使用。上传(),我只有“httpUploadProgress”。

宰父保臣
2023-03-14

upload() 允许您控制对象的上传方式。例如,您可以定义并发性和段大小。

从其文档中:上传任意大小的缓冲区、blob 或流,如果负载足够大,则使用智能并发处理部分。

我发现的一个具体好处是,upload() 将接受未定义内容长度的流,而 putObject() 则不会。

这很有用,因为我有一个允许用户上传文件的APIendpoint。框架以可读流的形式将文件交付给我的控制器,该流没有内容长度。我不必测量文件大小,只需将其直接传递到<code>upload()

阎京
2023-03-14

与 put 对象 () 相比,使用 AWS 开发工具包上传 () 的优势如下:

    < li >如果上传完成时报告的MD5不匹配,它将重试。 < li >如果文件足够大,它会使用多部分上载来并行上载各部分。 < li >根据客户端的重试设置重试。 < li >您可以使用进行进度报告。 < li >根据文件扩展名设置ContentType(如果您没有提供)。
 类似资料:
  • 我们提供了上传文件的示例。 为了开发这个应用程序,我们使用了HTML,CSS和AngularJS。 以下示例显示了如何使用AngularJS上载文件。 <html> <head> <script src = "https://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"> </script

  • 问题内容: 我目前正在使用名为s3-upload-stream的node.js插件将非常大的文件流式传输到Amazon S3。它使用了多部分的API,并且在大多数情况下效果很好。 但是,该模块显示了它的年龄,我已经不得不对其进行修改(作者也已弃用了它)。今天,我遇到了另一个与亚马逊有关的问题,我真的很想接受作者的建议,并开始使用官方的aws- sdk完成上传。 但。 官方的SDK似乎不支持管道到。

  • 这是最奇怪的错误,我甚至不知道从哪里开始理解错在哪里。 S3一直工作得很好,直到突然有一天(昨天)它奇怪地编码任何上传给奇怪字符的文本文件。每当一个文本文件中有`、`、Ω或任何其他UTF-8可比字符,但没有英文字符时,该文本文件就会被弄乱。我尝试过使用各种客户端以及AWS的web界面上传。上传很顺利,然后我下载文件,它搞砸了。我试着把它下载到我的Mac上,我试着把它下载到带有Linux的覆盆子上。

  • 我正在尝试将文件上传到s3存储桶中的文件夹中。我正在用PHP做以下工作: 桶名是发送到PHP的字符串,表示使用正斜杠的子文件夹: 然而,当我将一个新图像上传到我的bucket时,它会被上传到bucket root。如何将此文件上载到bucket中的子文件夹? 谢谢

  • 当我试图从客户端上传时,我一直得到403。这是因为桶上没有条件吗?如果我只是指定密钥-没有访问密钥,签名或策略-它将上传罚款。 桶策略: CORS(因当地开发而开放) 签名生成 客户:

  • 本文向大家介绍antd Upload 文件上传的示例代码,包括了antd Upload 文件上传的示例代码的使用技巧和注意事项,需要的朋友参考一下 1.antd官网Upload组件: https://ant.design/components/upload-cn/ 2.下图是最近开发的上传文档的效果: 3.文件上传的实现: (1)方法一:antd默认上传。 a:渲染文件上传组件。getPDFURL