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 分钟前
【Git】-- 多人协作
git·ubuntu
175063319452 小时前
EtherCAT ubuntu wireshark
网络·ubuntu·wireshark
weixin_462446233 小时前
ubuntu真机安装tljh jupyterhub支持跨域iframe
linux·运维·ubuntu
小小ken3 小时前
ubuntu通过vmware workstation安装win10虚拟机简要步骤及排错
ubuntu·vmware·虚拟机
小小ken4 小时前
ubuntu添加新网卡时,无法自动获取IP原因及解决办法
linux·网络·tcp/ip·ubuntu·dhcp
LuckyLay5 小时前
Ubuntu配置多版本Java,自由切换
java·linux·ubuntu
HIT_Weston6 小时前
99、【Ubuntu】【Hugo】搭建私人博客:搜索功能(三)
linux·运维·ubuntu
deng-c-f7 小时前
配置(13):给Vmware中的ubuntu扩容(只适用LVM分区)
linux·运维·ubuntu
ICT董老师7 小时前
在Ubuntu 22.04上使用GitLab和Jenkins部署CI/CD的完整过程
ubuntu·ci/cd·kubernetes·gitlab·jenkins
CheungChunChiu8 小时前
# Xorg 配置与 modesetting 驱动详解:从设备节点到显示旋转
android·linux·ubuntu·显示·xserver