如何在Cloud9 Ubuntu 18.04LTS上从谷歌云端硬盘下载大.tgz文件以安装Docker容器?
在Cloud9 Ubuntu 18.04LTS环境中下载谷歌云端硬盘大.tgz文件的解决方案
环境信息
- 谷歌云端硬盘文件ID:
1HIDg5ksQCY7Hd37AaxXlv32vLVzyrkpw - Cloud9 EBS卷容量:32G
- Cloud9 EC2实例类型:t3.medium(4 GiB内存 + 2 vCPU)
问题总结
curl -L/wget直接访问分享链接返回HTML页面,无法下载文件gdown工具解析链接失败,报错提示文件路径不存在
解决方案
方法1:修正gdown命令参数
原错误源于使用网页分享链接而非下载链接,且依赖的Python2.7版本gdown存在兼容性问题,按以下步骤操作:
- 升级gdown到Python3版本:
pip3 install --upgrade gdown
- 选择以下任一命令下载:
- 通过文件ID下载:
gdown 1HIDg5ksQCY7Hd37AaxXlv32vLVzyrkpw
- 通过原链接加
--fuzzy参数自动解析:
gdown --fuzzy https://drive.google.com/file/d/1HIDg5ksQCY7Hd37AaxXlv32vLVzyrkpw/view
方法2:使用curl调用谷歌云盘下载API
针对大文件,谷歌云盘需权限验证,执行以下命令:
- 基础下载命令(小文件适用):
curl -L -o docker_package.tgz "https://drive.google.com/uc?export=download&id=1HIDg5ksQCY7Hd37AaxXlv32vLVzyrkpw"
- 大文件验证下载(自动处理权限确认):
# 临时保存cookie和验证页面 curl -c /tmp/gdrive_cookies "https://drive.google.com/uc?export=download&id=1HIDg5ksQCY7Hd37AaxXlv32vLVzyrkpw" > /tmp/gdrive_intercept.html # 提取验证码并下载文件 curl -L -b /tmp/gdrive_cookies -o docker_package.tgz "https://drive.google.com/uc?export=download&confirm=$(grep -Po 'confirm=\K\d+' /tmp/gdrive_intercept.html)&id=1HIDg5ksQCY7Hd37AaxXlv32vLVzyrkpw" # 清理临时文件 rm -rf /tmp/gdrive_cookies /tmp/gdrive_intercept.html
方法3:使用wget下载
类似curl的API调用方式,一键处理验证:
wget --load-cookies /tmp/gdrive_cookies "https://drive.google.com/uc?export=download&id=1HIDg5ksQCY7Hd37AaxXlv32vLVzyrkpw&confirm=$(wget --quiet --save-cookies /tmp/gdrive_cookies --keep-session-cookies --no-check-certificate 'https://drive.google.com/uc?export=download&id=1HIDg5ksQCY7Hd37AaxXlv32vLVzyrkpw' -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1/p')" -O docker_package.tgz && rm -rf /tmp/gdrive_cookies
后续操作
下载完成后,解压文件准备Docker安装:
tar -xzf docker_package.tgz
内容的提问来源于stack exchange,提问作者somnathchakrabarti
相关产品推荐
相关产品推荐

