Введение
Начиная с декабря 2023 года все ссылки на вложения Discord CDN имеют следующий формат: https://cdn.discordapp.com/attachments/channel/message/filename.ext?ex=EXPIRES&is=ISSUED&hm=CODE
Значения параметров запроса EXPIRES
и ISSUED
представляют собой даты в формате Unix/epoch hex, CODE
- это закодированная контрольная сумма, используемая для проверки значений EXPIRES
и ISSUED
. Попытка получить ссылки на вложения Discord CDN без вышеупомянутых параметров запроса или с параметром EXPIRES
, превышающим текущее время, приведет к ответу 404: This content is no longer available.
пример.
На практике это означает, что вы больше не можете ссылаться на вложения из Discord на своем сайте, делиться мемасиками на OK.ru и VK.com ?
В этой статье представлено эффективное решение для публичного доступа к ссылкам на Discord CDN.
Discord CDN прокси особенно удобен для пользователей Midjourney API, Pika API и InsightFaceSwap API.
После настойки прокси вы можете использовать публичные ссылки на изображения в формате https://your-discord-cdn-proxy-url/?https://cdn.discordapp.com/attachments/channel/message/filename.ext
. Этими ссылками можно делиться публично, публиковать на вашем сайте и т.д. Прокси обновит ссылки после ?
и перенаправит браузер на обновленную ссылку на Discord CDN. Вы также опционально можете добавить исходные параметры оригинальной ссылки ?ex=EXPIRES&is=ISSUED&hm=CODE
, прокси проверит истекла ли ссылка и может немедленно вернуть исходный URL если линк еще "свежий".
При ответе HTTP 302 прокси создает заголовок Expires со временем истечения ссылки. Дополнительный заголовок x-discord-cdn-proxy
будет установлен в одно из следующих значений:
original
- предоставленные параметры запроса ссылки?ex=EXPIRES&is=ISSUED&hm=CODE
указывают что ссылка все еще "свежая"refreshed
- вызов к API Discordhttps://discord.com/api/v9/attachments/refresh-urls
был сделан для получения обновленной ссылкиmemory
- обновленная ссылка возвращена из кеша памятиbucket
- обновленная ссылка возвращена из кеша R2 (только для Cloudflare Worker)
? Ознакомиться с секретной диаграммой работы Discord CDN прокси.
Исходная протухшая ссылка Discord CDN открыть (404: This content is no longer available.
)
Прокси ссылка открыть
Прокси ссылка без параметров запроса открыть
В репозитории приведен код для двух вариантов прокси:
Google App Engine ? подробные инструкции.
Инстанция F1 бесплатна для работы 24/7/365 ссылка.
Google требует ввести кредитную карту или другой способ оплаты при регистрации ссылка.Cloudflare Worker ? подробные инструкции.
В рамках бесплатного аккаунта включено 100K запросов в день ссылка.
Cloudflare не требует ввода платежной информации.
Вы можете выбрать любой из этих вариантов в зависимости от ваших предпочтений.
Исходный код для Google App Engine представляет собой стандартный Node.js Express сервер.
Вы можете использовать его в любой node.js-совместимой среде или локально на вашем сервере, инструкции ниже:
Буду рад подробно ответить на ваши вопросы в Discord или Telegram.