· Nacho Coll · Comparisons · 8 мин чтения
Альтернатива Filebase: простой IPFS-пиннинг без S3
Сравнение IPFS Ninja и Filebase. Если нужен простой REST API без накладных расходов S3 — вот почему разработчики делают выбор в пользу IPFS Ninja.

Быстрое сравнение: Filebase и IPFS Ninja
| Функция | Filebase | IPFS Ninja |
|---|---|---|
| Стиль API | S3-совместимый (XML/multipart) | Простой REST/JSON |
| Бесплатный план | 5 ГБ хранилища | 1 ГБ, 500 файлов |
| Первый платный план | $19.99/мес (Performance) | $5/мес (Bodhi) |
| Выделенные шлюзы | Да | Да (до 10 на Nirvana) |
| Оптимизация изображений | Нет | Да (/image/{cid}) |
| Аутентификация загрузок | Подпись в стиле AWS | X-Api-Key или подписанные токены |
| Пиннинг существующих CID | Через S3 PUT в бакет | POST /pin |
| Загрузки на стороне клиента | Требует настройки pre-signed URL | Подписанные токены загрузки, встроено |
Вывод: если вы уже используете AWS SDK, Filebase впишется органично. Если нужно отправить файл в IPFS одной командой curl — IPFS Ninja выигрывает по простоте.

Загрузка файла в IPFS за 30 секунд
Вот путь загрузки через IPFS Ninja. Никакого SDK, никакого XML, никакого создания бакета:
curl -X POST https://api.ipfs.ninja/upload/new \
-H "X-Api-Key: bws_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4" \
-H "Content-Type: application/json" \
-d '{
"content": "Hello from IPFS Ninja!",
"description": "My first file"
}'Ответ:
{
"cid": "bafkreib4mrow...",
"sizeMB": 0.00002,
"uris": {
"ipfs": "ipfs://bafkreib4mrow...",
"url": "https://ipfs.ninja/ipfs/bafkreib4mrow..."
}
}Готово. Этот CID закреплён, доступен через IPFS и сразу достижим через публичный шлюз.
А вот эквивалентный процесс в Filebase:
- Создайте аккаунт и бакет в консоли Filebase.
- Сгенерируйте пару: ключ доступа + секретный ключ.
- Настройте S3-клиент с эндпоинтом
https://s3.filebase.com, региономus-east-1и вашими учётными данными. - Вызовите
putObjectс телом файла. - Опросите метаданные объекта, чтобы получить IPFS CID (он появляется в заголовке
x-amz-meta-cidпосле того, как Filebase его закрепит).
Это не плохой подход — просто больше движущихся частей, чем нужно большинству REST-native проектов.
Почему разработчики сталкиваются с трудностями S3 в Filebase
S3-совместимость Filebase реально полезна, когда:
- У вас есть существующая инфраструктура, работающая с S3 (Lambda-функции, модули Terraform, агенты резервного копирования).
- Вы храните большие файлы и хотите использовать знакомую семантику multipart-загрузки.
- Ваша команда хорошо знает AWS, и S3 SDK уже является зависимостью.
Но многие разработчики, встраивающие IPFS в веб-приложение, dApp или CI-пайплайн, не приходят из этого мира. Они сталкиваются с:
XML-ответами об ошибках. S3 возвращает XML. Ваш JavaScript fetch получает в ответ <?xml version="1.0" ...><Error><Code>InvalidAccessKeyId</Code>, и вам приходится добавлять XML-парсер для отладки.
Управлением учётными данными. Аутентификация в стиле S3 (ключ доступа + секретный ключ + подпись запросов HMAC-SHA256) нетривиальна для реализации с нуля в браузере или edge-функции. Pre-signed URL помогают, но их генерация на сервере добавляет лишний обход.
CID как второстепенный результат. CID является метаданными S3-объекта, а не основным ответом. Его нужно либо извлекать из заголовков ответа, либо запрашивать отдельный эндпоинт метаданных.
Отсутствие нативных подписанных токенов загрузки. Если вы хотите, чтобы пользователи загружали файлы напрямую из браузера, не раскрывая серверные учётные данные, Filebase требует самостоятельно реализовать эндпоинт генерации pre-signed URL.
Подписанные токены загрузки IPFS Ninja решают эту задачу нативно: сгенерируйте ограниченный по времени токен на сервере один раз, встройте его во фронтенд и позвольте пользователям делать POST напрямую на api.ipfs.ninja — до истечения срока действия токена или его отзыва.
Сравнение цен
| План | Filebase | IPFS Ninja |
|---|---|---|
| Бесплатный | 5 ГБ, только публичный шлюз | 500 файлов, 1 ГБ, 1 выделенный шлюз |
| Первый платный | ~$19.99/мес (Performance) | $5/мес (Bodhi: 50K файлов, 10 ГБ) |
| Средний уровень | — | $29/мес (Nirvana: 500K файлов, 100 ГБ) |
| Выделенные шлюзы | Да | Да (Bodhi: 5, Nirvana: 10) |
Для небольших и средних проектов переход с бесплатного плана на первый платный обойдётся в $5/мес у IPFS Ninja против примерно $20/мес у Filebase. Если вы разрабатываете пет-проект или MVP стартапа — эта разница важна.
Сравнение функций шлюза
Оба сервиса предлагают выделенные IPFS-шлюзы (поддомены, раздающие закреплённый контент по HTTPS). Различия:
Filebase даёт выделенный шлюз на платных планах. Он отдаёт контент вашего бакета и интегрирован с их S3-пространством имён.
Шлюзы IPFS Ninja на https://{slug}.gw.ipfs.ninja поддерживают:
- Режимы доступа: ограниченный (требует токен), открытый (публичный) или папочный (листинг директории).
- Белый список IP: ограничьте шлюз известными серверными IP-адресами.
- Ограничения по origin: ограничьте доступ конкретными HTTP-origin — удобно для CORS-сценариев только в браузере.
- Оптимизация изображений: эндпоинт
/image/{cid}позволяет изменять размер, кадрировать и конвертировать формат на лету — отдельный image CDN не нужен.
Если вы раздаёте ассеты веб-фронтенду, ограничение по CORS origin и встроенная оптимизация изображений избавят вас от интеграции отдельного сервиса.
Пиннинг существующего CID
Уже есть CID от другого узла или сервиса? Обе платформы позволяют закрепить его без повторной загрузки. В IPFS Ninja:
curl -X POST https://api.ipfs.ninja/pin \
-H "X-Api-Key: bws_a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4" \
-H "Content-Type: application/json" \
-d '{
"cid": "bafkreib4mrow...",
"description": "Pinned from external source"
}'В Filebase пиннинг выполняется через PUT в бакет с CID в заголовке пользовательских метаданных, после чего Filebase сам забирает и закрепляет контент. Подход «CID в первую очередь» в IPFS Ninja более прямолинеен, если вы мыслите в терминах IPFS, а не S3.
См. что такое IPFS-пиннинг — подробное объяснение, зачем нужен пиннинг и что происходит с незакреплённым контентом.
Загрузки на стороне клиента без утечки учётных данных
Это распространённый архитектурный вопрос: как позволить браузеру загружать файлы в IPFS, не передавая API-ключ клиенту?
Подход Filebase: сгенерируйте pre-signed S3 PUT URL на сервере, верните его клиенту, клиент выполняет PUT напрямую. Стандартный паттерн pre-sign для S3, работает нормально, но требует реализации серверного эндпоинта подписи.
Подход IPFS Ninja: вызовите /token/upload/new (или сгенерируйте через дашборд), чтобы создать подписанный токен загрузки. Встройте этот токен во фронтенд. Клиент делает POST на api.ipfs.ninja с заголовком Authorization: Signed {token}. Токен можно ограничить по времени или мгновенно отозвать из дашборда.
// Frontend code — token was fetched from your server
const token = 'your-signed-upload-token';
const response = await fetch('https://api.ipfs.ninja/upload/new', {
method: 'POST',
headers: {
'Authorization': `Signed ${token}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
content: btoa(fileContentAsArrayBuffer), // base64 for binary
description: 'User uploaded file',
}),
});
const { cid, uris } = await response.json();
console.log('Pinned at:', uris.url);Подробное описание паттернов загрузки — в статье как загружать файлы в IPFS.
Когда всё же выбрать Filebase
Эта статья написана честно, а не как односторонняя реклама.
Выбирайте Filebase, если:
- Ваш код уже использует AWS SDK v3 или Boto3 и вы не хотите добавлять новые зависимости.
- Вы мигрируете с S3 на IPFS и хотите просто сменить эндпоинт, не переписывая логику загрузки.
- Вы храните очень большие файлы и вам нужна надёжная multipart-загрузка с S3-семантикой (хотя у IPFS Ninja тоже есть API для больших файлов).
- Ваша команда глубоко знает AWS и находит S3-аутентификацию привычнее, чем REST-заголовки.
Выбирайте IPFS Ninja, если:
- Вы хотите одним
POST /upload/newполучить CID без промежуточных шагов. - Вы строите фронтенд-ориентированное приложение и нужны клиентобезопасные токены загрузки без реализации pre-sign инфраструктуры.
- Вам нужна оптимизация изображений и шлюзы с контролем доступа без подключения дополнительного сервиса.
- Вы чувствительны к цене и $5/мес на старте важны для вашего этапа разработки.
Итог
Filebase — добротный продукт для команд, живущих в экосистеме AWS. Его S3-совместимость — реальное преимущество в этом контексте. Но для разработчиков, которым просто нужно закреплять файлы в IPFS через чистый REST API и сразу получать CID, слой S3 добавляет сложность без пользы.
IPFS Ninja сводит API к минимуму: загрузить, закрепить, получить. Шлюз, оптимизация изображений и токены загрузки доступны, когда они нужны, — а не обязательны с самого начала.
Для более широкого обзора того, как IPFS Ninja сравнивается с другими сервисами, см. лучшие сервисы IPFS-пиннинга.
Готовы начать пиннинг? Создайте бесплатный аккаунт — 500 файлов, 1 ГБ хранилища, карта не нужна.
Об этой статье: статья написана AI-ассистентом с использованием рабочего процесса генерации контента IPFS.NINJA, затем проверена и одобрена Nacho Coll. Все примеры кода проверены на работающем API IPFS.NINJA. Если вы заметили неточность, откройте issue на https://github.com/ipfs-ninja/feedback. Узнайте больше о том, как мы используем AI в нашем контенте и познакомьтесь с командой IPFS.NINJA.

