是否可以使用我的机器人在 discord.py 中附加大于 150Mb 的文件

Posted

技术标签:

【中文标题】是否可以使用我的机器人在 discord.py 中附加大于 150Mb 的文件【英文标题】:Is it possible to attach a file bigger than 150Mb in discord.py using my bot 【发布时间】:2021-02-25 22:11:36 【问题描述】:

我是 discord.py 的新手,因此我试图了解它是如何工作的 好奇我们是否可以通过机器人发送大文件 我可以发送小于 8Mb 的文件,但对于较大的文件会显示错误

discord.ext.commands.errors.CommandInvokeError:命令引发异常:HTTPException:413 Payload Too Large(错误代码:40005):请求实体太大

有没有办法解决这个问题?

【问题讨论】:

【参考方案1】:

这个错误是由于 Discord 自身的文件上传限制造成的。

作为普通用户或机器人,您最多只能上传 8MB 的文件。 如果您使用的服务器提升到了 2 级,您可以上传最多 50MB 的文件,即使使用您的机器人(我自己已经测试过)。 如果您有 Discord Nitro,则最多可以上传 100MB 的文件。目前我不确定您自己的 Discord Nitro 是否也适用于绑定到您帐户的机器人,但我计划在本周末进行测试。 经过测试,它不适用于您的机器人

如您所知,上述情况均不允许您上传大于 150MB 的文件,因此如果您想上传文件,则需要减小文件大小。你可以做以下两件事之一:

    尝试捕获Payload Too Large 异常,然后忽略上传过大的文件 如果文件太大并且是图像,请使用 PIL 将文件大小减小到 8MB(或 50MB 对于增强型服务器)。这个问题是一个很好的起点How to reduce the image file size using PIL

【讨论】:

从技术上讲,有一个选项 3;将文件上传到外部服务并链接。 是的,这绝对是另一种选择。如果是图像,imgur 可能会起作用。如果没有,dropbox 或 mega 可能会工作(假设它们都有您可以从 python 使用的 API)。 有什么办法可以减小视频文件的文件大小?我实际上希望机器人从某个 url 下载视频,然后将其发布到我的服务器中,但我没有任何方法可以将视频文件大小减少到 8Mb 或更小,而不是降低质量 我怀疑有没有一种方法可以将 150MB 的视频减少到 8MB 而不会显着降低质量。您最好只发布 URL。如果它是 mp4 的直接 URL,Discord 应该正确嵌入它,但 Discord 并不总是能很好地自动嵌入 @pigeonburger 查看编辑。遗憾的是,它不适用于您的机器人

以上是关于是否可以使用我的机器人在 discord.py 中附加大于 150Mb 的文件的主要内容,如果未能解决你的问题,请参考以下文章

是否可以在 discord.py 中为不同的前缀使用不同的命令?

您能否确定是不是可以使用 discord.py 直接向用户发送消息?

Discord.py 在事件之外发送消息

如何让我的 discord.py 机器人提及我的消息中提到的某人?

如何在 discord.py 中使用高级命令处理

如何让我的 discord.py 机器人识别它正在被 ping