node.js - предоставить прямую ссылку на файл на диске Google - PullRequest
0 голосов
/ 08 февраля 2019

используя другой ответ на этом сайте, я смог найти скрипт 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`

Я даже могу запустить скрипт gdown изв NODE.js:

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 Диск для размещения больших файлов для веб-сайта, и для этого мне нужно иметь возможностьсоздать прямую ссылку для скачивания.Я думал о чем-то вроде выполнения запроса GET на mynodewebsite / GOOGLE_DRIVE_LINK или даже запроса сокета к серверу node.js с просьбой получить ссылку, а затем ожидания сгенерированного ответа ссылки.

ОДНАКО , хотя я могу медленно загружать файл, используя описанные выше методы, как я могу просто вернуть / прямую ссылку на файл?Нужно ли мне загружать файл google drive на сервер node.js, ждать, пока он завершит обработку, а затем вернуть путь к этому файлу обратно клиенту, а затем удалить его?Это было бы своего рода поражением цели для больших файлов, так как я хочу использовать Google Drive в качестве полного хостинга ...

ТАК, как я могу просто вернуть прямую ССЫЛКУ для загрузки с Google Диска, а не загружать ее целиком?

РЕДАКТИРОВАТЬ:

Когда я пытаюсь открыть вновь созданный проект: enter image description here

1 Ответ

0 голосов
/ 12 февраля 2019

Если вы хотите получить прямую ссылку для загрузки большого общего файла в Google Диск, вы можете использовать конечную точку с помощью ключа API.Конечная точка выглядит следующим образом.

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

Вы можете использовать конечную точку в качестве прямой ссылки и загрузить файл.

Ссылки:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...