[英]How to download a file with Node.js from google drive api
如何從谷歌驅動器 api 下載帶有 Node.js 的文件
我不需要什么特別的東西。 我只想從 GoogleDrive 下載一個文件,然后將其保存到客戶端的給定目錄中。
app.get("/download",function(req,res){
const p38290token = new google.auth.OAuth2(CLIENT_ID, CLIENT_SECRET, REDIRECT_URI);
p38290token.setCredentials({ refresh_token: token.acc });
const p38290Id = google.drive({
version: "v3",
auth: p38290token,
});
var dest = fs.createWriteStream("./test.png");
try {
p38290Id.files.get({
fileId: "1daaxy0ymKbMro-e-JnexmGvM4WzW-3Hn",
alt: "media"
}, { responseType: "stream" },
(err, res) => {
res.data
.on("end", () => {
console.log("Done");
})
.on("error", err => {
console.log("Error", err);
})
.pipe(dest); // i want to sent this file to client who request to "/download"
}
)
} catch (error) {
}
})
我想這樣做,只要有人訪問www.xyz.com/download ,文件就會自動下載
問題似乎出在這一行:
var dest = fs.createWriteStream("./test.png");
您正在使用一個文件系統命令,該命令旨在與服務器上的文件進行交互。 您的問題清楚地表明您希望express
將文件的內容傳遞給提出 HTTP 請求的客戶。
為此,您可以只使用路由回調 function 的res
參數。您在此行聲明它:
app.get("/download",function(req,res){
在您的情況下,我將完全刪除dest
變量,並簡單地將文件pipe
刪除到res
,如下所示:
.pipe(dest);
也看看這個答案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.