【发布时间】:2021-03-15 05:47:23
【问题描述】:
我在 googledrive 上有一组图像,并且我有一个指向每个图像的链接列表。它们可能是公开的,也可能不是公开的(知道链接的任何人)。我想将它们保存在本地并单独嵌入到网页中,因为直接将它们嵌入到 img 标签中会导致图像加载延迟。
我需要通过 Node.JS 脚本以编程方式下载它们。 Node.JS 脚本是我构建管道的一部分,因此我不能完全使用 gdown(python 包)。
我尝试了 google drive API,但 OAuth 令牌每小时都会过期,而且我的构建每周都在 cron 作业中,同时提交到存储库。
我有什么选择?
这是一个例子
[
{
"name": "A",
"photoUrl": "https://drive.google.com/uc?export=view&id=1km3V6PP70MTUsNWFEgdVea6jv-0BMnRT"
},
{
"name": "B",
"photoUrl": "https://drive.google.com/uc?export=view&id=1km3V6PP70MTUsNWFEgdVea6jv-0BMnRT"
},
]
【问题讨论】:
-
为了正确理解您的问题,请问您目前的情况和您的目标是什么? 1.在您的情况下,所有图像文件都是公开共享的? 2. 文件中一个文件的最大大小是多少? 3.在你的情况下,你可以使用
request模块来下载文件吗? 4. 您将如何使用下载的文件?例如,您想将下载的文件创建为文件?或者您想将下载的文件用作二进制数据? -
1.其中大多数是,但如果不是,我不会下载该图像。 2. 最大 3MB 3. 我试过 https.get(url, res => res.pipe(file)) 但获取请求似乎失败了。 4. 我正在使用一个静态站点生成器,它将在预处理后在生成的 html 中添加 img 元素
-
感谢您的回复。根据您的回复,所有文件中一个文件的最大文件大小为 3 MB,并且您希望在文件公开共享时将文件下载为二进制数据。并且您想将数据与其他进程一起使用。我的理解正确吗?如果我的理解是正确的,你能提供样品
a list of links吗?当您无法提供示例链接时,请不要担心。那时,我想提出一个使用文件ID的示例脚本。 -
我在原始问题中添加了参考 json。您可以将图像保存为
${name}.jpg -
感谢您回复并添加更多信息。根据您的回复,我提出了一个示例脚本作为答案。你能确认一下吗?如果这不是您期望的方向,我深表歉意。
标签: javascript node.js download