aws s3上传大文件的4种方法

aws s3 上对存储的数据容量是没有限制的,各个 Amazon S3 数据元的大小可在 1 字节至 5 TB 之间,可在单个 PUT 中上传的最大数据元为 5 GB,对于大于 100 MB 的数据元,官方建议是要采用分段上传的方式,所以如果你有很大的文件要上传到S3上,而目前还不知道采用哪种方式最好,今天这篇文章我们就是专门来讨论如何把一个大文件上传到S3上的,经过我自己汇总,S3对上传大文件有四种方式,以下我们分别介绍:

1、第一种,用命令行方式上传,采用s3put命令进行上传:

参数介绍,–bucket 后跟的是要上传的bucket名称,–multipart是支持多块上传,注意这个参数s3put默认是没有的,需要安装filechunkio 模块,用

pip install filechunkio 进行安装,安装完后就可以到这个参数选项了,–callback是回调函数,后面跟分几次进行上传,这个参数起到回显的功能,可以看到一个大文件分别上传到多少bytes,如果参数省略也可以上传成功,就是没有任何回显了。

2、第二种也是采用命令行方式,可以用s3cmd上传,因为这个命令我之前已经有详细介绍,今天就不在重复介绍了,可以在这里查看详细使用方法:

3、api方式,如果你觉得命令行方式用的不过瘾,就想用代码实现,也是可以的,其实aws针对大数据上次,也基本提供的是api接口模式,就是调用aws的api接口把文件分块上传到服务器上,然后服务器再把每个块组合成一个大的文件,这样的好处是如果传输中间网络断掉了,下次还可以根据传输的块编号进行续传,这就是基本原理,代码我是采用官方的例子,大家如果要用,可以根据自己的情况自行修改:

4、使用适用于分段上传的 REST API,官方介绍:

针对s3上传到文件的方式就写到这里里,这4种方式肯定沟通用了,各位看官可以根据自己业务实际情况进行选择,今天就到这里,如有问题,请各位看官斧正。