如何从 google 驱动器 api 下载 Node.js 的文件
How to download a file with Node.js from google drive api
如何从 google 驱动器 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 请求的客户端。
为此,您只需使用路由回调函数的 res
参数即可。您在这一行声明它:
app.get("/download",function(req,res){
在你的情况下,我会完全删除 dest
变量,然后简单地 pipe
将文件 res
像这样:
.pipe(dest);
也看看这个 answer。
如何从 google 驱动器 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 请求的客户端。
为此,您只需使用路由回调函数的 res
参数即可。您在这一行声明它:
app.get("/download",function(req,res){
在你的情况下,我会完全删除 dest
变量,然后简单地 pipe
将文件 res
像这样:
.pipe(dest);
也看看这个 answer。