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

Arp*_*dal 1 python filesize discord discord.py

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

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

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

Bra*_*ade 5

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

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

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

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

  • 从技术上讲,有选项 3;将文件上传到外部服务并链接它。 (4认同)