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

Швидке порівняння: Filebase проти IPFS Ninja
| Функція | Filebase | IPFS Ninja |
|---|---|---|
| Стиль API | S3-сумісний (XML/multipart) | Простий REST/JSON |
| Безкоштовний рівень | 5 GB сховища | 1 GB, 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.
- Згенеруйте пару ключів: access key + secret key.
- Налаштуйте S3-клієнт із endpoint
https://s3.filebase.com, регіонus-east-1та ваші облікові дані. - Викличте
putObjectз тілом файлу. - Опитайте метадані об’єкта, щоб отримати IPFS CID (він з’являється як заголовок
x-amz-meta-cidпісля того, як Filebase запіне файл).
Це не погано — просто більше рухомих частин, ніж потрібно більшості REST-орієнтованих проєктів.
Чому розробники наштовхуються на тертя S3 у Filebase
S3-сумісність Filebase справді корисна, коли:
- У вас є наявна інфраструктура, яка спілкується з S3 (Lambda-функції, Terraform-модулі, агенти резервного копіювання).
- Ви зберігаєте великі blob-и і хочете використати семантику multipart-завантаження, яку вже знаєте.
- Ваша команда добре знає AWS, і S3 SDK вже є залежністю.
Але багато розробників, які інтегрують IPFS у веб-застосунок, dApp або CI-пайплайн, приходять не з цього світу. Вони стикаються з:
XML-відповідями на помилки. S3 повертає XML. Ваш JavaScript fetch отримує у відповідь <?xml version="1.0" ...><Error><Code>InvalidAccessKeyId</Code> — і вам доводиться додавати XML-парсер для налагодження.
Керуванням обліковими даними. S3-авторизація (access key + secret + підписування запитів HMAC-SHA256) нетривіальна для реалізації з нуля в браузері або edge-функції. Pre-signed URL допомагають, але їх генерація на сервері додає зайвий round trip.
CID як вторинна відповідь. CID — це метадані S3-об’єкта, а не основна відповідь. Потрібно або парсити заголовки відповіді, або викликати окремий endpoint метаданих.
Відсутність нативних підписаних токенів завантаження. Якщо ви хочете, щоб користувачі завантажували напряму з браузера без розкриття серверних облікових даних, Filebase вимагає самостійно побудувати endpoint генерації pre-signed URL.
Підписані токени завантаження IPFS Ninja обробляють цей патерн нативно: згенеруйте токен з обмеженим терміном дії на сервері один раз, вбудуйте його у фронтенд і дозвольте користувачам надсилати POST напряму до api.ipfs.ninja до закінчення терміну дії токена або його відкликання.
Порівняння цін
| Тарифний план | Filebase | IPFS Ninja |
|---|---|---|
| Безкоштовний | 5 GB, тільки публічний шлюз | 500 файлів, 1 GB, 1 виділений шлюз |
| Перший платний | ~$19.99/міс (Performance) | $5/міс (Bodhi: 50K файлів, 10 GB) |
| Середній рівень | — | $29/міс (Nirvana: 500K файлів, 100 GB) |
| Виділені шлюзи | Так | Так (Bodhi: 5, Nirvana: 10) |
Для малих і середніх проєктів перехід із безкоштовного на перший платний рівень коштує $5/міс у IPFS Ninja проти ~$20/міс у Filebase. Якщо ви будуєте pet-проєкт або MVP стартапу — ця різниця має значення.
Порівняння функцій шлюзів
Обидва сервіси пропонують виділені IPFS-шлюзи (піддомени, які роздають запінений контент через HTTPS). Відмінності:
Filebase надає виділений шлюз на платних планах. Він роздає вміст вашого бакету та інтегрується з їхнім S3-простором імен.
IPFS Ninja шлюзи за адресою https://{slug}.gw.ipfs.ninja підтримують:
- Режими доступу: обмежений (потрібен токен), відкритий (публічний) або папка (перелік директорії).
- Білий список IP: обмежте шлюз відомими серверними IP-адресами.
- Обмеження за origin: обмежте доступ до конкретних HTTP-origin — корисно для CORS-сценаріїв лише у браузері.
- Оптимізація зображень: endpoint
/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 напряму. Стандартний патерн S3 pre-sign, працює нормально, але потрібно реалізувати серверний endpoint підписування.
Підхід IPFS Ninja: викличте /token/upload/new (або згенеруйте через dashboard), щоб створити підписаний токен завантаження. Вбудуйте цей токен у фронтенд. Клієнт надсилає POST до api.ipfs.ninja з Authorization: Signed {token}. Токен можна обмежити терміном дії або відкликати миттєво з dashboard.
// 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 і хочете просто замінити endpoint, а не переписувати логіку завантаження.
- Ви зберігаєте дуже великі файли і вам потрібне надійне multipart-завантаження з S3-семантикою (хоча у IPFS Ninja також є API для великих завантажень).
- Ваша команда глибоко знає AWS і вважає S3-авторизацію звичнішою за REST-заголовки.
Оберіть IPFS Ninja, якщо:
- Ви хочете одним
POST /upload/newотримати CID без проміжних кроків. - Ви будуєте frontend-first застосунок і потребуєте безпечних для клієнта токенів завантаження без побудови pre-sign-інфраструктури.
- Вам потрібна оптимізація зображень і шлюзи з контролем доступу без підключення ще одного сервісу.
- Ціна має значення і вхідний рівень $5/міс важливий для вашого проєкту.
Підсумок
Filebase — надійний продукт для команд, які вже живуть в екосистемі AWS. Його S3-сумісність є справжньою перевагою в цьому контексті. Але для розробників, які просто хочуть запінити файли до IPFS через чистий REST API і одразу отримати CID у відповідь, — шар S3 додає церемонії без користі.
IPFS Ninja тримає поверхню API мінімальною: завантажити, запінити, отримати. Шлюз, оптимізація зображень і токени завантаження доступні тоді, коли вони потрібні, — без обов’язкового налаштування з самого початку.
Для ширшого огляду того, як IPFS Ninja порівнюється з іншими сервісами, дивіться найкращі сервіси IPFS-пінінгу.
Готові почати пінінг? Створіть безкоштовний акаунт — 500 файлів, 1 GB сховища, без кредитної картки.
Про цю статтю: статтю підготував AI-асистент у рамках робочого процесу генерації контенту IPFS.NINJA, після чого її переглянув і затвердив Nacho Coll. Усі приклади коду перевірено на живому API IPFS.NINJA. Якщо ви помітили неточність, будь ласка, відкрийте issue на https://github.com/ipfs-ninja/feedback. Дізнайтеся більше про те, як ми використовуємо AI у нашому контенті та познайомтеся з людьми за IPFS.NINJA.

