Введение
Начиная с декабря 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.