猿问

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 drive 文件下载到 node.js 服务器上,等待它完成处理,然后将该文件的路径返回给客户端,然后再将其删除?这会破坏大文件的目的,因为我想使用 Google Drive 作为完整的托管......


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


qq_遁去的一_1
浏览 174回答 1
1回答
随时随地看视频慕课网APP

相关分类

Python
我要回答