个人博客:Sekyoro的博客小屋
个人网站:Proanimer的个人网站
跑深度学习的时候,一些数据集比较大,比如60多个G,而且只是训练集.
然后这些数据是由某些实验室组采集的,并不像一些大公司搞的,一般都直接方法一些网盘中.
如果是谷歌网盘,本身通过代理也不麻烦,但是发现即使通过代理,下载的速度也非常慢,如果频繁下载还会被限制.
这里给一个方法,通过租赁廉价服务器下载谷歌云盘的数据集,然后自己再通过公网下载.速度要快一些.
我通过IDM下载谷歌云盘上的大型数据集时速度低的时候可能才五六百KB,
使用这种方法20多G的数据40s左右下载到服务器上
然后搭个nginx,再下回国内.速度6M左右.不会像谷歌云盘那样限速
基本方法
下载到服务器
方法基本想法就是海外服务器下载谷歌云盘上的数据更快(哪怕你用了代理),利用vultr等服务器商租一个服务器,利用google api下载数据.
curl -H "Authorization: Bearer YOUR_ACCESS_TOKEN" https://www.googleapis.com/drive/v3/files/YOUR_FILE?alt=media -o OUTPUT_FILE
token从OAUTH取,授权Drive API v3下的 https://www.googleapis.com/auth/drive.readonly 这样就拿到了token.
接下来拿云盘上文件的id,
复制的链接的中间有一串独特的id,这就是文件id.
这里要注意的是,如果文件是从别人那直接下载的,还是可能会遇到超额问题,建议保存到自己的网盘下然后拿文件链接
下载到本地
在服务器上搭建一个nginx
sudo ufw app list
sudo ufw allow 'Nginx Full'
把需要下载的文件放在nginx Web根目录(/var/www/html)中,然后根据ip后加上文件名就能直接下载了,一般来说这里的下载速度就要慢一些了,我这里5、6M左右,可以优化这部分速度
参考方法
- 如何下载Google Drive中的超大型文件 - Max1z - 博客园 (cnblogs.com)
如有疑问,欢迎各位交流!
服务器配置
宝塔:宝塔服务器面板,一键全能部署及管理
云服务器:阿里云服务器
Vultr服务器
GPU服务器:Vast.ai