通过外网上传文件至 COS 缓慢

最后更新时间:2021-05-08 14:20:12

    现象描述

    • 现象1
    • 使用公司网络进行上传时,传输正常;使用家庭网络进行上传时,传输缓慢(低于8Mbps)。
    • 使用手机4G网络进行上传时,传输正常;使用公司网络进行上传时,传输缓慢(低于8Mbps)。
    • 现象2使用自定义域名进行上传时,传输缓慢。

    可能原因

    • 针对现象1:
    1. 如果您在不同的网络环境下访问 COS 的速率不同,可能和当前网络运营商及网络环境有关。
    2. 如果您在不同的网络环境下访问 COS 的速率不同,可能因跨境访问导致。
    • 针对现象2:自定义域名 CNAME 到其他产品再转回到 COS,如内容分发网络(Content Delivery Network,CDN)、云服务器(Cloud Virtual Machine,CVM)、安全高防产品。

    解决思路

    • 如果您遇到 现象1 的情况,则可以通过检查客户端网络环境的方式自行处理。操作详情请参见 排查客户端网络
    • 如果您遇到 现象2 的情况,则可以通过修改自定义域名解析的方式减少传输中转链路,提高传输效率。操作详情请参见 修改自定义域名解析

    处理步骤

    排查客户端网络

    1. 执行以下命令,确认 IP 地址运营商与客户端网络运营商是否相符。
      ping COS 的访问域名
      
      例如:
      ping examplebucket-1250000000.cos.ap-beijing.mqcloud.com
      
    1. 以 Chrome 浏览器为例,检查浏览器是否设置了代理。

      1. 打开 Chrome 浏览器,单击右上角的 > 【设置】,打开设置页面。
      2. 单击【高级】,在“系统”栏中选择【在您计算机的代理设置】,打开操作系统的设置窗口。

      检查是否设置了代理。

      • 是,关闭代理。
      • 否,请执行 步骤3
    2. 检查所用的 Wi-Fi 路由器是否存在限速。

    • 是,请根据实际需求,酌情放行。
    • 否,请执行 步骤4
    1. 检查当前网络上传 COS 的传输性能。
      以 COS 的 COSCMD 工具为例,测试一个20MB对象的上传和下载性能。
      coscmd probe -n 1 -s 20
      
      返回类似如下结果,分别得出平均速率(Average),最低速率(Min),最高速率(Max)。
    2. 通过浏览器访问 测速网,并结合 步骤4 检查客户端的网络带宽占用率是否达到上限。
    • 如果步骤4的速率低于客户端带宽速率,请 联系我们
    • 如果步骤4的速率等于客户端带宽速率,且未达到运营商承诺的带宽,请联系运营商客服。
    • 如果步骤4的速率等于客户端带宽速率,且达到了运营商承诺的带宽,请执行 步骤6
    1. 检查是否存在国内客户端访问海外节点 bucket,或者存在海外客户端访问国内节点 bucket。
    • 是,建议使用 COS 的全球加速功能。
    • 否,请 联系我们

    修改自定义域名解析

    1. 检查自定义域名解析是否为 COS 域名。
    • 是,请 联系我们
      常见的 COS 域名如下:
      XXX.cos.ap-beijing.myqcloud.comCOS 默认域名)
      XXX.cos.accelerate.myqcloud.comCOS 全球加速域名)
      XXX.cos-website.ap-beijing.myqcloud.comCOS 静态页域名)
      XXX.picbj.myqcloud.comCOS 数据万象默认域名)
      
    • 否,请执行 步骤2
      常见的非 COS 域名如下:
      XXX.file.myqcloud.comXXX.cdn.dnsv1.com(腾讯云 CDN 默认域名)
      XXX.w.kunlungr.comaliyunCDN 默认域名)
      
    1. 将自定义域名的 CNAME 解析到所需的 COS 域名中,并进行数据上传。
      例如 upload.mydomain.com cname XXX.cos.ap-beijing.myqcloud.com,具体操作请参见 开启自定义源站域名
    2. 修改客户端的默认 COS 域名。
      以 C# 代码为例:
      CosXmlConfig config = new CosXmlConfig.Builder()
      .SetConnectionTimeoutMs(60000) //设置连接超时时间,单位 毫秒 ,默认 45000ms
      .SetReadWriteTimeoutMs(40000) //设置读写超时时间,单位 毫秒 ,默认 45000ms
      .IsHttps(true) //设置默认 https 请求 
      .SetAppid(appid) //设置腾讯云账户的账户标识 APPID
      .SetRegion(region) //设置一个默认的存储桶地域
      .SetHost("XXXXXX.com") //输入自定义域名
      .SetDebugLog(true) .Build(); //创建 CosXmlConfig 对象
      
      其他 SDK 调用请参见 SDK 概览