首页 > 解决方案 > node.js -- 为谷歌驱动文件提供直接链接

问题描述

在这个网站上使用另一个答案,我能够找到这个 curl 脚本:

#!/bin/bash
fileid="0Bz-w5tutuZIYY3h5YlMzTjhnbGM"
filename="MyFile.tar.gz"
curl -c ./cookie -s -L "https://drive.google.com/uc?export=download&id=${fileid}" > /dev/null
curl -Lb ./cookie "https://drive.google.com/uc?export=download&confirm=`awk '/download/ {print $NF}' ./cookie`&id=${fileid}" -o ${filename}

它能够下载大型 Google Drive 文件(显示警告页面)。

此外,我能够使用以下pip install gdown命令:

gdown https://drive.google.com/uc?id=0Bz-w5tutuZIYY3h5YlMzTjhnbGM

pip install youtube-dl图书馆:

youtube-dl https://drive.google.com/uc?id=0Bz-w5tutuZIYY3h5YlMzTjhnbGM`

我什至可以在 NODE.js 中运行 gdown 脚本:

const {spawn} = require("child_process");
 var g = spawn("gdown", ["https://drive.google.com/uc?id=0Bz-w5tutuZIYY3h5YlMzTjhnbGM"]);
 g.stdout.on('data', (d) => {
    console.log(d.toString()); 
 });

 g.stderr.on('data', (d) => {
    console.log(d.toString()); 
 });

 g.on('close', (d) => {
    console.log("closed with: " + d.toString()); 
 });

问题:

我希望能够使用 Google Drive 来托管网站的大文件,为此我需要能够生成直接下载链接。我正在考虑向 mynodewebsite/GOOGLE_DRIVE_LINK 发出 GET 请求,甚至向 node.js 服务器发出套接字请求,要求它获取链接,然后等待生成的链接响应。

但是,虽然我可以使用上述方法慢慢下载文件,但我怎样才能简单地将 / 返回到文件的直接链接?我是否需要将google驱动文件下载到node.js服务器上,等待它完成处理,然后将该文件的路径返回给客户端,然后再将其删除?这会破坏大文件的目的,因为我想使用 Google Drive 作为完整的主机......

那么我怎样才能简单地返回直接的 Google Drive 下载链接而不是下载整个东西呢?

编辑:

当我尝试打开新创建的项目时: 在此处输入图像描述

标签: pythonnode.jsgoogle-drive-apinodes

解决方案


当您想要检索直接链接以下载 Google Drive 中的共享大文件时,您可以使用 API 密钥使用端点。端点如下。

https://www.googleapis.com/drive/v3/files/### fileId ###?alt=media&key=### API key ###

您可以将端点用作直接链接并下载文件。

参考:


推荐阅读