node.js-提供Google驱动器文件的直接链接

时间:2019-02-08 08:45:50

标签: python node.js google-drive-api nodes

使用此站点上的另一个答案,我能够找到以下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云端硬盘文件(显示警告页面)。

此外,我还可以使用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云端硬盘为网站托管大型文件,为此,我需要能够产生直接下载链接。我在想类似对mynodewebsite / GOOGLE_DRIVE_LINK进行GET请求,甚至对node.js服务器进行套接字请求,要求它获取链接,然后等待生成的链接响应。

如何 ,尽管我可以使用上述方法缓慢下载文件,但如何才能简单地将/的直接​​链接返回给文件?我是否需要将Google驱动器文件下载到node.js服务器上,等待它完成处理,然后将该文件的路径返回给客户端,然后再将其删除?因为我想使用Google云端硬盘作为完整的托管服务,所以这会破坏大文件的用途。

那么我该如何直接返回Google云端硬盘直接下载链接而不是下载整个内容呢?

编辑:

当我尝试打开新创建的项目时: enter image description here

1 个答案:

答案 0 :(得分:1)

当您要检索直接链接以在Google云端硬盘中下载共享的大文件时,可以使用具有API密钥的端点。端点如下。

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

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

参考文献: