场景描述
OSS 公网上传分为两种,针对这两种场景分别描述
- 跨境传输
- 国内传输
跨境传输
由于网络因素导致,国外国内互传 OSS 文件时,受到国际出口链路的瓶颈影响,传输速度以及稳定性都是无法保证 100% 可用,尤其是在特殊节日例如重要政治会议时期可能更容易出现封堵,针对此类情况用户可以考虑如下种优化手段;
SDK 层面
1、客户可以用 SDK 的断点上传/下载 功能,对源文件进行切片传输,降低大文件的网络传输带宽、延迟开销;同时在网络带宽利用率不高的情况下可以增加分片的并发数量,提高带宽吞吐;
2、客户在跨境传输时,可以采用增加重试,适当调大超时时间兼容弱网、丢包等环境的影响;但超时时间不宜太长,这样会影响重试;
3、多线程上传时协程的效率会比较高,但是传输速率不一定高,协程是通过线程中断进行调度切换的,保证每个线程都可以上传但是切换过程中类似软中断一样都有影响传输速率;
网络层面
1、可以开通全地域上传加速功能,通过智能 DNS 择优链路访问 OSS。
2、使用 全站加速,开通 DCDN ,将加速类型设置为全球加速,然后将 DCDN 的原站设置为 OSS 域名。DCDN 会通过就近的边缘节点(靠近网民)接入客户的上下行请求,然后通过智能选路的方式,探测一条最短的回源路径回到原站 OSS,起到上下行的加速作用;
3、如果是 PC 端上传,保证本地的文件描述符、网络连接数不要被打满,避免出现 socket 连接等待引发超时;
4、 如果用户的场景是大量的 OSS 文件被下载,也可以使用 CDN 加速文件的下行链路,通过分布众多的 CDN 节点就近访问。
工具层面
用户如果不是擅长编码,最快的方式是通过阿里云的自动化工具进行上传、下载,如果是大量文件并发上传推荐使用 ossutil ,支持并发、分片、debug 等场景。
如果客户端不会使用命令行,也可以使用 ossbrower 工具,但是传输性能不如 ossutil 而且支持的文件大小是 5G;
如果用户上传 OSS 使用的 ECS 和 OSS 在同一个地区,建议用户使用内网的 endpoint 地址来上传文件到 OSS;
国内传输
SDK 层面
1、客户可以用 SDK 的断点上传/下载 功能,对源文件进行切片传输,降低大文件的网络传输带宽、延迟开销;同时在网络带宽利用率不高的情况下可以增加分片的并发数量,提高带宽吞吐;
2、客户在跨境传输时,可以采用增加重试,适当调大超时时间兼容弱网、丢包等环境的影响;但超时时间不宜太长,这样会影响重试;
3、多线程上传时协程的效率会比较高,但是传输速率不一定高,协程是通过线程中断进行调度切换的,保证每个线程都可以上传但是切换过程中类似软中断一样都有影响传输速率;
网络层面
1、可以开通全地域上传加速功能,通过智能 DNS 择优链路访问 OSS。
2、使用 全站加速,开通 DCDN ,将加速类型设置为全球加速,然后将 DCDN 的原站设置为 OSS 域名。DCDN 会通过就近的边缘节点(靠近网民)接入客户的上下行请求,然后通过智能选路的方式,探测一条最短的回源路径回到原站 OSS,起到上下行的加速作用;
3、如果是 PC 端上传,保证本地的文件描述符、网络连接数不要被打满,避免出现 socket 连接等待引发超时;
4、 如果用户的场景是大量的 OSS 文件被下载,也可以使用 CDN 加速文件的下行链路,通过分布众多的 CDN 节点就近访问。
工具层面
用户如果不是擅长编码,最快的方式是通过阿里云的自动化工具进行上传、下载,如果是大量文件并发上传推荐使用 ossutil ,支持并发、分片、debug 等场景。
如果客户端不会使用命令行,也可以使用 ossbrower 工具,但是传输性能不如 ossutil 而且支持的文件大小是 5G;
如果用户上传 OSS 使用的 ECS 和 OSS 在同一个地区,建议用户使用内网的 endpoint 地址来上传文件到 OSS;