使用简单上传(PutObject)上传大文件无法成功

问题描述

  • 上传大于5G的文件出现失败的情况。
  • 上传小于5GB的文件时,可能由于网络环境原因,出现上传小文件正常,但上传较大文件时,请求发出去就收不到任何响应,直至超时的情况。

 

问题原因

  • 文件大小超过5GB。
  • 上传小于5GB的文件时失败,出现超时的情况,原因可能是服务器的MTU设置较大。

 

解决方案

文件大小超过5GB

您可以使用ossutil命令行工具,通过分块上传的接口将大文件分成多个小的分块进行上传,详细的接口使用请参考分片上传和断点续传

 

文件小于5GB

  1. 您可在ECS上执行netstat -i命令获取当前的MTU设置值。如下图获得默认的内外网网卡的MTU都是1500。
    mtu
  2. 根据上一步获取的MTU值,通过以下两种方法解决。
    • 方法一:将本机的MTU改小一些。Linux下修改MTU的命令如下。以ECS通过eth0内网访问OSS,调整MTU值为1470为例。
      ip link set dev eth0 mtu 1470
    • 方法二:也可以使用分片上传接口或ossutil工具进行上传。

 

适用于

  • 对象存储 OSS