日常学习中,经常会遇到需要从海外站点下载镜像等大文件的情况。而由于本地网络环境等原因,下载速度往往很慢,通常只有几k或几十k。以下载2.3G的树莓派官方镜像为例,往往需要几个小时才能下完。
方案概述
本文讲述使用 AWS EC2 作为资源下载中转站的方式,快速将大型文件(如:树莓派镜像)下载,并传输本地的方法。即先将镜像资源下载到AWS EC2磁盘,然后将磁盘中的镜像传输到本地硬盘。
注意:请务必不要使用任何项目的生产环境做本文实验。可以使用测试环境或个人环境进行测试。
创建EC2虚拟机
如果需要开通海外版账户,可以使用这个链接注册:https://aws.amazon.com/cn/free/?trk=9d8d506b-1ab9-4e68-ba2d-ddb3121a34cf&sc_channel=ba
如果已经有海外版账户,需要免费AWS EC2 测试环境,可以查看: 免费AWS EC2实例_jack@london的博客-CSDN博客_aws可以开多少个免费的实例
有了账户后,可以通过使用 AWS Console 创建 EC2的方式,开启一台虚拟机。
在EC2中下载树莓派镜像
首先,利用 AWS EC2 的网络高带宽优势,将树莓派镜像文件下载到 EC2 的磁盘中。
wget https://downloads.raspberrypi.org/raspios_full_armhf/images/raspios_full_armhf-2020
-08-24/2020-08-20-raspios-buster-armhf-full.zip
可以看到,将如此大的镜像文件下载到EC2中只需要几分钟就完成了。
将树莓派镜像从 EC2 传输到本地硬盘
接下来,就需要利用 AWS 的网络优势,将文件从 EC2 磁盘拷贝到本地硬盘。
可以根据个人本地开发环境,任意选择如下一种命令方式进行传输。
- 使用scp命令行传输
使用 scp 命令,需要首先在本机安装过scp应用。
在本地cmd窗口输入命令,将EC2中文件传输到本地。
scp -i "key.pem" ec2-user@3.21.227.219:/home/ec2-user/2020-08-20-raspios-buster-armhf-full.zip .
注意:不要遗漏命令结尾的点号 ".",它表示当前路径。
- 使用 pscp 传输
pscp.exe作为PuTTY目录中自带的应用,其使用方法和 scp 类似。
pscp -i PrivateKey.ppk ec2-user@3.21.227.219:/home/ec2-user/2020-08-20-raspios-buster-armhf-full.zip .
- 使用 awscli 传输
另外,也可以将文件从 EC2 上传到 AWS S3 存储桶,然后从存储桶下载到本地。这种方式需要安装aws cli。
aws s3 cp balenaEtcher-Setup-1.5.45.exe s3://fei666
结论
在使用命令行将树莓派镜像成功传输到本地后,可以发现,这种方式帮我们节省很多时间,省去了网络断连等不稳定情况下造成下载失败的风险。
AWS 还有很多值得探索的,以及好玩的特性和优势等着大家去发现哦。
通过官方微信社群,不懂的问题可以咨询“云助手”(super-assistant)在线得到专业的回复,还可以与志同道合的朋友一起探讨问题、共同勉励。