Skip to content

Выделенные шлюзы

Пользователи плана Nirvana получают приватный шлюз IPFS на уникальном поддомене. Этот шлюз обслуживает только файлы, закреплённые в вашем аккаунте — он не разрешает CID других пользователей или публичной сети IPFS.

Страница списка шлюзов с карточками шлюзов

URL вашего шлюза

URL вашего шлюза показан на странице шлюза и возвращается конечной точкой /user/profile:

https://<your-slug>.gw.ipfs.ninja/ipfs/<CID>

Режимы доступа

РежимПоведение
Открытый (по умолчанию)Любой, у кого есть URL вашего шлюза и CID, может получить доступ к вашим файлам. Токен не требуется.
Токен обязателенЗапросы должны включать токен шлюза через параметр ?token=gwt_... или заголовок X-Gateway-Token.

Лимиты

  • 50 ГБ/мес. пропускной способности шлюза включено в план Nirvana
  • При достижении лимита пропускной способности запросы к шлюзу возвращают 429 до следующего месяца
  • Использование хранилища сбрасывается первого числа каждого месяца
  • Обслуживаются только CID, закреплённые в вашем аккаунте — запросы других CID возвращают 403

TIP

Публичный шлюз по адресу ipfs.ninja/ipfs/ остаётся доступным на всех планах и обслуживает любой CID без аутентификации.

Настройки шлюза

Настройте контроль доступа для вашего выделенного шлюза.

Страница деталей шлюза с режимом доступа, обязательным токеном и белым списком IP

Обновить настройки

PUT /gateway-settings

ПараметрТипОбязательныйОписание
tokenRequiredbooleanНетВключить/отключить обязательный токен шлюза.
ipWhiteliststring[]НетМассив разрешённых IP-адресов. Максимум 100. Пустой массив удаляет белый список.
allowedOriginsstring[]НетМассив разрешённых источников для браузерных запросов. Максимум 100. Должен использовать формат HTTPS (например, https://myapp.com). Пустой массив разрешает все источники.

Примеры

bash
# Включить режим обязательного токена
curl -X PUT https://api.ipfs.ninja/gateway-settings \
  -H "X-Api-Key: bws_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{"tokenRequired": true}'

# Установить белый список IP
curl -X PUT https://api.ipfs.ninja/gateway-settings \
  -H "X-Api-Key: bws_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{"ipWhitelist": ["203.0.113.1", "198.51.100.0"]}'

# Очистить белый список IP (разрешить все IP)
curl -X PUT https://api.ipfs.ninja/gateway-settings \
  -H "X-Api-Key: bws_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{"ipWhitelist": []}'

# Ограничить определёнными источниками
curl -X PUT https://api.ipfs.ninja/gateway-settings \
  -H "X-Api-Key: bws_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{"allowedOrigins": ["https://myapp.com", "https://staging.myapp.com"]}'

# Удалить ограничения по источнику (разрешить все источники)
curl -X PUT https://api.ipfs.ninja/gateway-settings \
  -H "X-Api-Key: bws_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{"allowedOrigins": []}'

Ограничения по источнику

Когда allowedOrigins настроен, разрешаются только браузерные запросы от указанных источников. Шлюз проверяет заголовки Origin и Referer входящих запросов.

  • Если список пуст (по умолчанию), разрешены все источники.
  • Если источники указаны, запросы с заголовком Origin или Referer, не совпадающим ни с одной записью, отклоняются с ответом 403.
  • Не-браузерные запросы без заголовка Origin (такие как серверные запросы или curl) проходят без ограничений.

Это полезно для встраивания контента шлюза в ваше веб-приложение с предотвращением хотлинкинга файлов другими сайтами.

Токены шлюза

Токены шлюза (префикс gwt_) предназначены только для чтения и безопасны для встраивания во фронтенд-приложения. В отличие от API-ключей, токен шлюза может только получать доступ к файлам через ваш выделенный шлюз — он не может загружать, удалять или управлять вашим аккаунтом.

ВозможностьAPI-ключ (bws_)Токен шлюза (gwt_)
Загрузка / удаление файловДаНет
Просмотр / получение метаданных файловДаНет
Чтение файлов через шлюзНетДа
Безопасно для встраивания во фронтендНетДа

Создать токен шлюза

POST /gateway-tokens

ПараметрТипОбязательныйОписание
namestringНетМетка для токена (например, "Frontend"). По умолчанию "Default".

Ответ 201 Created

json
{
  "token": "gwt_a1b2c3d4e5f6789012345678abcdef01",
  "tokenPrefix": "gwt_a1b2c3d4",
  "tokenName": "Frontend",
  "createdAt": 1711036800000
}

WARNING

Полный токен возвращается только один раз при создании. Сохраните его в безопасном месте.

Список токенов шлюза

GET /gateway-tokens

json
[
  {
    "tokenPrefix": "gwt_a1b2c3d4",
    "tokenName": "Frontend",
    "createdAt": 1711036800000
  }
]

Удалить токен шлюза

DELETE /gateway-tokens/:prefix

ПараметрТипОбязательныйОписание
prefixstringДаПрефикс токена для удаления (например, "gwt_a1b2c3d4").

Использование токена шлюза

Когда ваш шлюз работает в режиме обязательного токена, передайте токен как параметр запроса или заголовок:

bash
# Параметр запроса
curl "https://a1b2c3d4.gw.ipfs.ninja/ipfs/QmXk7VRz...?token=gwt_your_token"

# Или заголовок
curl https://a1b2c3d4.gw.ipfs.ninja/ipfs/QmXk7VRz... \
  -H "X-Gateway-Token: gwt_your_token"