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
相关推荐
欧云服务器3 天前
怎么让脚本命令可以同时在centos、debian、ubuntu执行?
ubuntu·centos·debian
智渊AI3 天前
Ubuntu 20.04/22.04 下通过 NVM 安装 Node.js 22(LTS 稳定版)
ubuntu·node.js·vim
The️3 天前
Linux驱动开发之Read_Write函数
linux·运维·服务器·驱动开发·ubuntu·交互
再战300年3 天前
Samba在ubuntu上安装部署
linux·运维·ubuntu
qwfys2003 天前
How to install golang 1.26.0 to Ubuntu 24.04
ubuntu·golang·install
木尧大兄弟3 天前
Ubuntu 系统安装 OpenClaw 并接入飞书记录
linux·ubuntu·飞书·openclaw
小虾爬滑丫爬3 天前
ubuntu上设置Tomcat 开机启动
ubuntu·tomcat·开机启动
老师用之于民3 天前
【DAY25】线程与进程通信:共享内存、同步机制及实现方案
linux·c语言·ubuntu·visual studio code
小虾爬滑丫爬3 天前
Ubuntu 上设置防火墙
ubuntu·防火墙
林开落L3 天前
解决云服务器内存不足:2 分钟搞定 Ubuntu swap 交换区配置(新手友好版)
运维·服务器·ubuntu·swap交换区