繁体   English   中英

aws s3 putObject vs sync

[英]aws s3 putObject vs sync

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

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

总有一种方法可以制作东西,所以要将文件上传到S3存储桶,您可以:

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

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

基本上所有这些方法都是aws S3 API调用的包装器。 来自amazon doc

直接从代码中调用REST API可能很麻烦。 它要求您编写必要的代码以计算有效签名以验证您的请求。 我们建议使用以下替代方案:

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

所以亚马逊会建议使用SDK。 在一天结束时,我认为这对你最舒服的事情以及如何将这段代码集成到你的程序的其余部分非常重要。 对于一次性操作,我总是去CLI。

但就性能而言,使用其中一个或另一个不会产生差异,因为它们只是AWS API调用的包装。 对于传输优化,您应该查看aws s3传输加速度并查看是否可以启用它

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM