· · Comparisons  · 8 хв читання

Альтернатива Filebase: простий IPFS-пінінг без S3

Порівняння IPFS Ninja і Filebase. Якщо потрібен простий REST API без накладних витрат S3 — ось чому розробники переходять.

Порівняння IPFS Ninja і Filebase. Якщо потрібен простий REST API без накладних витрат S3 — ось чому розробники переходять.

Швидке порівняння: Filebase проти IPFS Ninja

ФункціяFilebaseIPFS Ninja
Стиль APIS3-сумісний (XML/multipart)Простий REST/JSON
Безкоштовний рівень5 GB сховища1 GB, 500 файлів
Перший платний$19.99/міс (Performance)$5/міс (Bodhi)
Виділені шлюзиТакТак (до 10 на Nirvana)
Оптимізація зображеньНіТак (/image/{cid})
Авторизація завантаженьПідписування у стилі AWSX-Api-Key або підписані токени
Пінінг наявних CIDЧерез S3 PUT до бакетуPOST /pin
Завантаження з клієнтаПотрібне налаштування pre-signed URLПідписані токени завантаження, вбудовано

Підсумок: якщо ви вже налаштовуєте AWS SDK, Filebase вписується органічно. Якщо хочете відправити файл до IPFS однією командою curl — IPFS Ninja виграє за простотою.

IPFS Ninja dashboard upload interface

Завантажте файл до 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:

  1. Створіть акаунт і бакет у консолі Filebase.
  2. Згенеруйте пару ключів: access key + secret key.
  3. Налаштуйте S3-клієнт із endpoint https://s3.filebase.com, регіон us-east-1 та ваші облікові дані.
  4. Викличте putObject з тілом файлу.
  5. Опитайте метадані об’єкта, щоб отримати 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 до закінчення терміну дії токена або його відкликання.


Порівняння цін

Тарифний планFilebaseIPFS 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.

Назад до Блогу

Схожі статті

Усі статті »