Введение

Начиная с декабря 2023 года все ссылки на вложения Discord CDN имеют следующий формат: https://cdn.discordapp.com/attachments/channel/message/filename.ext?ex=EXPIRES&is=ISSUED&hm=CODE Значения параметров запроса EXPIRES и ISSUED представляют собой даты в формате Unix/epoch hexCODE - это закодированная контрольная сумма, используемая для проверки значений EXPIRES и ISSUED. Попытка получить ссылки на вложения Discord CDN без вышеупомянутых параметров запроса или с параметром EXPIRES, превышающим текущее время, приведет к ответу 404: This content is no longer available. пример.

На практике это означает, что вы больше не можете ссылаться на вложения из Discord на своем сайте, делиться мемасиками на OK.ru и VK.com ?

В этой статье представлено эффективное решение для публичного доступа к ссылкам на Discord CDN.

Discord CDN прокси особенно удобен для пользователей Midjourney APIPika 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 Discord https://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 представляет собой стандартный Node.js Express сервер.
Вы можете использовать его в любой node.js-совместимой среде или локально на вашем сервере, инструкции ниже:

Буду рад подробно ответить на ваши вопросы в Discord или Telegram.

Комментарии (0)