Ubuntu 下载google drive上的大文件

Ubuntu 下载google drive上的大文件

配置网络

bash 复制代码
export http_proxy=http://127.0.0.1:8889
export https_proxy=http://127.0.0.1:8889

或者配置进~/.bashrc文件中,永久生效,看个人需求

从google drive上下载文件

要从google drive上下载文件,需要获取下载文件的ID,例如https://drive.usercontent.google.com/download?id=12Dljy04maKIim3mZsR50CEOC3_ROZLCg\&export=download\&authuser=0这个URL中,12Dljy04maKIim3mZsR50CEOC3_ROZLCg就是它的文件ID

小于100M的文件

小于100M的文件可以直接下载,把下面的FILE_ID替换成文件ID,FILENAME替换成要保存下来的文件名即可

sh 复制代码
wget --no-check-certificate 'https://drive.google.com/uc?export=download&id=FILE_ID' -O FILENAME

大于100M的文件

大于100M的文件由于需要进行确认,所以用上述方法只会下载下来网页,需要用下面的脚本进行下载

参考 :https://www.cnblogs.com/marso/p/18711938

sh 复制代码
# 设置文件ID和输出文件名
FILE_ID="1mjIqU-c5q3qMI74XZd3UrkZek0IDTUUh"   # 替换成实际文件ID
OUTPUT="unet.pth"        # 替换成你想保存的文件名
 
# 获取下载页面并保存响应
RESPONSE=$(wget --quiet --save-cookies cookies.txt \
    --keep-session-cookies --no-check-certificate \
    "https://drive.google.com/uc?export=download&id=${FILE_ID}" \
    -O -)
 
# 保存响应以供调试
echo "$RESPONSE" > response.html
 
# 提取完整的下载参数
DOWNLOAD_URL="https://drive.usercontent.google.com/download"
ID=$(echo "$RESPONSE" | grep -o 'name="id" value="[^"]*"' | cut -d'"' -f4)
EXPORT=$(echo "$RESPONSE" | grep -o 'name="export" value="[^"]*"' | cut -d'"' -f4)
CONFIRM=$(echo "$RESPONSE" | grep -o 'name="confirm" value="[^"]*"' | cut -d'"' -f4)
UUID=$(echo "$RESPONSE" | grep -o 'name="uuid" value="[^"]*"' | cut -d'"' -f4)
 
# 检查是否所有参数都已获取
if [ -z "$ID" ] || [ -z "$EXPORT" ] || [ -z "$CONFIRM" ] || [ -z "$UUID" ]; then
    echo "无法提取所有必要的下载参数"
    echo "ID: $ID"
    echo "EXPORT: $EXPORT"
    echo "CONFIRM: $CONFIRM"
    echo "UUID: $UUID"
    exit 1
fi
 
# 构建完整的下载URL
FULL_URL="${DOWNLOAD_URL}?id=${ID}&export=${EXPORT}&confirm=${CONFIRM}&uuid=${UUID}"
 
echo "开始下载文件..."
echo "使用URL: $FULL_URL"
 
# 执行下载
wget --load-cookies cookies.txt \
    --no-check-certificate \
    "$FULL_URL" \
    -O "$OUTPUT"
 
# 检查下载是否成功
if [ $? -eq 0 ]; then
    echo "文件下载成功:$OUTPUT"
else
    echo "下载失败"
    exit 1
fi
 
# 清理临时文件
rm -f cookies.txt
 
exit 0
相关推荐
问简2 小时前
Ubuntu 26 + Windows 10 双系统 NTFS 共享盘笔记
ubuntu
pilifeng13 小时前
Ubuntu Linux 目录结构详解
linux·ubuntu
daemon.qiang18 小时前
国内虚拟机对接 Freedesktop:Fork xserver、自建 Runner 与提交 MR 实战
linux·ubuntu·centos·gitlab·开源软件
orange....1 天前
VMware 双网卡配置:宿主机切换网络时 Ubuntu 固定 IP 访问方案
网络·ubuntu·网络安全
园长的牧歌1 天前
Ubuntu 打开应用在导航栏没有图标是个齿轮
linux·ubuntu
牢姐与蒯1 天前
Linux进程间通信(一).进程间通信概念&&环境切换(着重强调vscode)
linux·运维·服务器·ubuntu
指尖的爷2 天前
【地狱级难度】ubuntu系统GOCV编译安装
linux·运维·ubuntu
j7~2 天前
【C++微服务项目开发脚手架】(环境篇)虚拟机 + Docker + MySQL/Redis/RabbitMQ/ES/etcd/FastDFS 全套配齐
linux·c++·ubuntu·docker·vmware·项目开发·微服务脚手架
可涵不会debug2 天前
公司外怎么连接管家婆?从 SQL Server 安装到 cpolar 固定 TCP 远程登录
linux·运维·ubuntu
云泽8082 天前
从零搭建 WSL2 + Ubuntu C/C++ 开发环境:原理、实践与底层架构解析
linux·c++·windows·ubuntu·wsl2