aws s3 putObject vs sync

我需要上传一个大文件到aws s3桶。 在每10分钟我的代码从源目录中删除旧文件,并生成一个新的文件。 文件大小约500 MB。 现在我使用s3.putObject()方法创build后上传每个文件。 我也听说过aws s3同步。 它与aws-cli一起来。 它用于上传文件到S3桶。

我用sws上传node.js的aws-sdk。 aws-sdk for node.js不包含s3-sync方法。 是s3-sync比s3.putObject()方法好吗? 我需要更快的上传。

总是有很多方法可以做到,所以要上传一个文件到一个S3存储桶中,你可以:

  • 使用aws CLI并运行aws s3 cp ...
  • 使用aws CLI并运行aws s3api put-object ...
  • 使用aws SDK(您select的语言)

您也可以使用sync方法,但对于单个文件,则不需要同步整个目录,而且通常在寻找更好的性能时,最好启动多个cp实例以从multithreadingvs同步单线程中受益。

基本上所有这些方法都是aws S3 API调用的封装。 从亚马逊文件

直接从您的代码进行REST API调用可能会非常麻烦。 它要求您编写必要的代码来计算有效的签名来validation您的请求。 我们推荐以下替代scheme:

  • 使用AWS软件开发工具包发送您的请求(请参阅示例代码和库)。 使用此选项,您不需要编写代码来计算请求身份validation的签名,因为SDK客户端使用您提供的访问键来validation您的请求。 除非您有充分的理由不这样做,否则应始终使用AWS软件开发工具包
  • 使用AWS CLI进行Amazon S3 API调用。 有关设置AWS CLI和示例Amazon S3命令的信息,请参阅以下主题:在Amazon Simple Storage Service开发人员指南中设置AWS CLI。 在AWS Command Line Interface用户指南中使用Amazon S3和AWS Command Line Interface。

所以亚马逊会推荐使用SDK。 在这一天结束的时候,我认为它确实是你最舒服的一个问题,你将如何将这段代码整合到你的程序的其余部分。 对于一次性行动,我总是去CLI。

就性能而言,使用其中一个或另一个不会再起作用,它们只是包装到AWS API调用。 对于传输优化,您应该查看aws s3传输加速并查看是否可以启用它