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

问题描述

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

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

有什么办法可以解决这个问题吗?

解决方法

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

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

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

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