【问题标题】:Discord JS - Downloading an image from attachmentDiscord JS - 从附件下载图像
【发布时间】:2020-11-30 12:30:37
【问题描述】:

我只需要修复基本的东西;想从附件下载文件,但我不知道如何将附件描述为对象/文件。

我只有这个:

let jimage = message.attachments.first()
fs.writeFileSync(`./${jimage.filename}`, jimage)

唯一的问题是,对于 FS 的第二个参数,discord 并没有只选择文件。我尝试这种方式的原因是因为我从这里得到了这个想法: how to save an image from discord using discord bot node js 但是“attachment.file”不是一个真实的东西。其他线程显示新调用的方法非常复杂,例如请求,我只想直接从 fs 和不和谐中执行此操作。

【问题讨论】:

  • 如果 discord.js 提供了一个“attachment.file”缓冲区,其中只包含一个缓冲区或已设置的文件流,我会认为这是一个巨大的缺陷。这意味着 discord.js 会自动下载它看到的每个附件并将它们存储在内存中。哎呀!相反,您所拥有的只是文件的 URL。这是一个与任何其他网络链接一样的网络链接,您必须使用任何 HTTP 请求模块来请求 URL 并将图像下载到您的计算机。
  • this StackOverflow post - 它应该回答你的问题。

标签: discord.js fs


【解决方案1】:

我在这里找到了一个非常简单的解决方案:

request(message.attachments.first().url).pipe(fs.createWriteStream('image.png'))

它基本上会找到文件在 discord 网站上的存储位置,并使用“请求”从那里获取文件。要保留文件名,您可以根据需要使用 message.attachments.first.name。不幸的是,我还没有找到如何保存文件类型。如果有任何问题,我会尽力帮助! 附言不要忘记定义和下载“请求”模块。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-19
    • 2020-10-12
    • 1970-01-01
    • 2018-08-10
    • 1970-01-01
    • 1970-01-01
    • 2014-01-07
    • 2020-11-10
    相关资源
    最近更新 更多