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
相关推荐
披着羊皮不是狼1 天前
将Ubuntu从C盘移动到D盘
linux·运维·ubuntu
Trouvaille ~1 天前
【MySQL篇】从零开始:安装与基础概念
linux·数据库·mysql·ubuntu·c·教程·基础入门
菜鸟z级1 天前
在新电脑装ubuntu包
linux·运维·ubuntu
魔都吴所谓1 天前
【Ubuntu】离线环境下Git LFS(deb包)安装与验证完整教程
linux·git·ubuntu
longxibo1 天前
【Ubuntu datasophon1.2.1 二开之九:验证离线数据入湖】
大数据·linux·运维·ubuntu
艾莉丝努力练剑1 天前
【Linux线程】Linux系统多线程(三):Linux线程 VS 进程,线程控制
java·linux·运维·服务器·c++·学习·ubuntu
jekc8681 天前
Ubuntu-GitLab
服务器·ubuntu·gitlab
筠筠喵呜喵1 天前
Ubuntu火狐浏览器无法打开 ensure slot is connected
ubuntu
x²+(y-√³x²)²=11 天前
Linux 或者 Ubuntu 离线使用 vllm启动大模型
linux·ubuntu·vllm
啦啦啦小石头1 天前
Docker+Nvidia Container Toolkit 在ubuntu下离线安装
ubuntu·docker·eureka