起这个标题可能稍微有点标题党的意思,但考虑到从澳洲往国内传输文件确实跨大洲甚至跨洋了,似乎也不算那么夸张。

起因是手头有一批数十GB起的文件需要传回国内的NAS(主要是我拍摄的风光照片,以及Llama的模型权重),考虑到不像国内快递物流那样方便地可以直接寄U盘,通过网络传输是目前唯一可行的方案。

目前使用的方案——SFTP中转

截至成稿时最佳的传输实践还是朴实但可靠的SFTP传输。我在东亚某地的某台VPS有100M对等带宽和10GB的存储盘,将文件分卷打包后在澳洲依次上传,然后远程回国内再依次下载解压。简单记录了一下传输速度,多个文件同时上下载时基本能跑满带宽。

传输方向 单个文件 多文件并行
澳洲上传 约7.5MB/s 约11MB/s
国内下载 约5MB/s 约9MB/s

其他注意事项:

  • 优点
    • 稳定,没遇到过断连的情况,多数传输一次即可成功
    • 基本能跑满中转服务器的带宽
  • 缺点
    • 如果中转用的服务器存储空间有限,需要分批多次上传/下载,不做自动化的话靠人守着有点费事
  • 上传前下载后校验Hash(反复强调,虽然偶发且概率很低,但确实会出现文件损坏的情况)
  • 使用7z的“极速压缩”对于多数文件取得了压缩时间和压缩率上的平衡,使用“标准压缩”速度显著变慢且几乎不能取得更低的压缩率
    • Llama参数:压缩率约78%
    • RAW原片:压缩率约87%
    • JPEG导出照片:显而易见的几乎无法压缩,使用“仅存储”即可

使用过但最终放弃的方案

这里还是简单记录一下使用过但放弃了的方案,以及在我的使用场景下为什么它们存在问题。

网盘中转

最先尝试以及最早放弃的方案。百度云盘就不说了,Google网盘在国内也需要额外的神秘开销才能使用。OneDrive虽然在澳洲上传速度很快,但国内直连仅100KB/s左右的下载速度不知道要下到猴年马月去。

一句话总结:国外的网盘在国内要么没法(直接)用,要么速度奇慢。

对象存储中转

与网盘类似的问题:国外的对象存储便宜(甚至有不少免费额度),但在国内下载慢且不稳定,哪怕是套了Cloudflare也没能完全解决断连的问题;国内的对象存储更贵,而且我想尽可能利用已有的资源避免多花钱。所以这条路很快也放弃了。

反向代理

把家里某台跳板机的存储服务反向代理到东亚某地的VPS上,然后在澳洲通过反代出来的服务直接传回家。速度相当难看,最高仅有1MB/s左右。更头疼的是线路始终不稳定,传不了几GB就会断连一次,就不说是什么原因了。

HTTP中转

这里尝试过在东亚某地的VPS上搭建AList存储服务,但发现免费Cloudflare套餐限制请求大小为140MB,导致我没法通过Web控制台上传文件。于是乎还是通过SFTP上传文件,在国内用HTTP下载。问题是很显然我没法用国内特供版的Cloudflare,导致下载过程依旧避免不了的是“从国外网站下载文件”,断连问题依旧不可避。