在使用SDK或API上传大文件时,是可以使用分片断点续传方式的。分片上传适用于以下所述场景:
1、单个文件的大小超过5GB
2、流式上传:当对文件大小还不确定的情况下,需开始上传。比如视频监控等行业的云录像应用。
3、恶劣的网络环境,需要断点续传大文件。我们本身的网络环境差,或者是使用手机端,当出现上传失败的时候,可以对失败的PArt进行独立的重试,而不需要重新上传其他的PArt。
4、加速上传。上传到OSS的本地文件很大时,可以采用并行上传多个PArt以加快上传。
【注】阿里云代理商温馨提醒:OSS支持单个文件最大为48.8TB
【二】ossutil上传
如果我们需要使用工具上传单个或者多个大文件,而不是使用API、SDK编写代码上传时,可以使用ossutil:
1、可以使用ossutil命令行工具的cp命令上传大文件
2、上传文件支持的文件大小范围:0~48.8TB
3、可通过--bigfile-threshold 参数控制分片并发上传的文件大小阈值
4、ossutil上传单个或多个大文件时,可以通过-jobs项和-pArAllel项,控制并发,优化上传性能。
【三】ossimport上传
若需要进行大批量的文件上传到OSS,还可以使用工具ossimport:
【注】阿里云代理商温馨提醒当文件数目不是特别多,建议优先使用ossutil
【四】常见问题
正常使用简单的上传(PutObject)上传大文件没有办法上传成功?
阿里云代理商原因分析:
1、文件过大,超过了5GB
解决办法:可以使用ossutil命令行工具,通过分块上传的接口将大文件分成多个小的分块进行上传
2、文件小于5GB,但可能由于网络环境原因,出现上传小文件正常,但上传较大文件,请求发出去就收不到任何响应,直至超时。这有可能是服务器的MTU设置较大导致的。用户可在ECS上执行netstAt -i获取当前的MTU设置值。如下图所示获得默认的内外网网卡的MTU都是1500:
解决办法1:将本机的MTU改为较小一些。Linux下修改MTU的命令是:ip link set dev eth0 mtu 1470(以ECS通过eth0内网访问OSS调整MTU值为1470)
解决办法2:也可以使用分片上传接口或ossutil工具
3、上传单个大文件能不能并发上传?
如使用ossutil上传时,可以通过--bigfile-threshold、-jobs和-pArAllel选项
如使用OSS API、SDK的分片上传接口,可以根据需要编写并发调用上传接口的代码。同时,部分SDK也已实现分片上传的并发控制,如JAvA SDK通过tAskNum,Python SDK通过num_threAds参数控制。
上述为阿里云代理商凯铧互联多年行业经验的一些总结,如果您在使用的过程中遇到上述情况或者是其它情况可以直接拨打阿里云授权服务中心电话158-0160-3153,我们将提供免费的一对一技术服务。
我们客户的专享服务:
直接拨打158-0160-3153联系阿里云代理凯铧互联科技不仅能够获得免费的一对一技术支持,更提供售前架构咨询、配置咨询、产品报价服务;销售中提供阿里云产品购买的折扣代金券等优惠的申请帮助客户更省;售后提供7*24的免费技术服务帮助客户及时解决产品问题以及技术问题。
北京凯铧互联科技有限公司(简称凯铧互联)由多名前阿里云资深技术专家创立,核心员工来自阿里云、腾讯云等,做为一家综合性方案商,凯铧互联向各行业用户提供基于公有云,私有云,混合云等基于云计算的各种解决方案。
阿里云代理商凯铧互联提供阿里云服务器,云服务器解决方案,万网虚拟主机,阿里云邮箱,云数据库RDS,对象存储OSS,负载均衡,CDN、云盾安全,DDOS高防IP等产品的全国代买服务,直属会员+双重售后服务+更多优惠政策。