如何用Python Discord Bot获取并显示图片的CDN链接?
解决方法:获取Discord图片CDN链接并替换
完全可行,实现思路是先发送带附件的消息,从返回的消息对象中提取附件的CDN链接,再用这个链接更新embed或者直接展示。
修改后的代码示例
with io.BytesIO() as image_binary: img1.save(image_binary, 'PNG') image_binary.seek(0) embed = discord.Embed(title="Skin Minecraft", url="https://twitter.com/", description="", color=discord.Colour.random()) # 先发送带附件的消息,此时embed用attachment占位 message = await ctx.send(embed=embed, file=discord.File(fp=image_binary, filename=f"Skin-{usuariominecraft}.png")) # 从消息的附件中提取CDN链接 if message.attachments: image_cdn_url = message.attachments[0].url # 更新embed的图片链接为CDN地址 embed.set_image(url=image_cdn_url) # 编辑原消息,移除附件,只保留更新后的embed await message.edit(embed=embed, attachments=[]) # 也可以直接发送CDN链接给用户 await ctx.send(f"图片CDN链接:{image_cdn_url}")
关键说明
- Discord会自动为上传的附件生成永久CDN链接,这个链接可以直接在embed或者聊天中使用,无需再携带附件。
- 必须先发送带附件的消息才能获取到CDN链接,因为链接是Discord服务器在接收附件后生成的,无法提前预知。
- 如果你不需要保留原来的embed,也可以直接在获取链接后发送纯文本链接,省去编辑消息的步骤。
内容的提问来源于stack exchange,提问作者Noelia
相关产品推荐
相关产品推荐

