· Nacho Coll · Comparisons · 12 分钟阅读
Filebase 替代方案:更简单的 IPFS Pinning,无需 S3 复杂配置
对比 IPFS Ninja 与 Filebase:如果你想用简洁的 REST API 完成 pinning,无需 S3 协议开销,这里是开发者选择切换的原因。

快速对比:Filebase vs IPFS Ninja
| 功能 | Filebase | IPFS Ninja |
|---|---|---|
| API 风格 | S3 兼容(XML/multipart) | 简单 REST/JSON |
| 免费套餐 | 5 GB 存储 | 1 GB,500 个文件 |
| 付费入门 | $19.99/mo(Performance) | $5/mo(Bodhi) |
| 专属网关 | 有 | 有(Nirvana 最多 10 个) |
| 图片优化 | 无 | 有(/image/{cid}) |
| 上传鉴权 | AWS 风格签名 | X-Api-Key 或签名令牌 |
| 固定已有 CID | 通过 S3 PUT 到存储桶 | POST /pin |
| 客户端直传 | 需要预签名 URL 管线 | 内置签名上传令牌 |
结论:如果你本来就在接入 AWS SDK 客户端,Filebase 能自然融入。如果你想用一条 curl 命令把文件传到 IPFS,IPFS Ninja 在简洁性上更胜一筹。

30 秒内将文件上传到 IPFS
以下是 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 已被 pin,可通过 IPFS 访问,并立即可经公共网关访问。
以下是 Filebase 的等效流程:
- 在 Filebase 控制台创建账户和存储桶。
- 生成访问密钥 + 秘密密钥对。
- 使用端点
https://s3.filebase.com、区域us-east-1及你的凭证配置 S3 客户端。 - 调用
putObject上传文件内容。 - 轮询对象元数据以获取 IPFS CID(Filebase pin 后,该 CID 会以
x-amz-meta-cid响应头的形式出现)。
这没有什么问题——只是对大多数原生 REST 项目来说,涉及的环节比必要的多。
开发者在 Filebase 上遭遇 S3 摩擦的原因
Filebase 的 S3 兼容性在以下场景确实有用:
- 你已有基础设施与 S3 通信(Lambda 函数、Terraform 模块、备份代理)。
- 你存储大型文件,并需要你已熟悉的 multipart 上传语义。
- 团队精通 AWS,S3 SDK 已是现有依赖。
但许多将 IPFS 集成进 Web 应用、dApp 或 CI 流水线的开发者并非来自这个背景。他们会遇到:
XML 错误响应。 S3 返回 XML。你的 JavaScript fetch 调用收到 <?xml version="1.0" ...><Error><Code>InvalidAccessKeyId</Code>,还得引入 XML 解析器才能调试。
凭证管理。 S3 风格鉴权(访问密钥 + 秘密密钥 + HMAC-SHA256 请求签名)在浏览器或边缘函数中从头实现并不简单。预签名 URL 有所帮助,但在服务端生成它们会增加一次往返。
CID 获取是事后操作。 CID 是 S3 对象上的元数据,而非主响应的一部分。你需要解析响应头,或调用独立的元数据端点。
没有原生签名上传令牌。 如果你希望用户从浏览器直接上传而不暴露服务端凭证,Filebase 要求你自行构建预签名 URL 生成端点。
IPFS Ninja 的签名上传令牌原生支持这一模式:在服务端一次性生成一个有时限的令牌,将其嵌入前端,让用户直接向 api.ipfs.ninja 发 POST 请求,直到令牌过期或被吊销。
定价对比
| 套餐 | Filebase | IPFS Ninja |
|---|---|---|
| 免费 | 5 GB,仅公共网关 | 500 个文件,1 GB,1 个专属网关 |
| 入门付费 | ~$19.99/mo(Performance) | $5/mo(Bodhi:50K 文件,10 GB) |
| 中级 | — | $29/mo(Nirvana:500K 文件,100 GB) |
| 专属网关 | 有 | 有(Bodhi:5 个,Nirvana:10 个) |
对于中小型项目,从免费升级到首个付费套餐,IPFS Ninja 是 $5/mo,Filebase 约为 $20/mo。如果你在做个人项目或初创 MVP,这个差距很重要。
网关功能对比
两个服务都提供专属 IPFS 网关(通过 HTTPS 提供你 pin 内容的子域名)。区别在于:
Filebase 在付费套餐下提供专属网关,服务你存储桶的内容,并与其 S3 命名空间集成。
IPFS Ninja 网关地址为 https://{slug}.gw.ipfs.ninja,支持:
- 访问模式:受限(需令牌)、公开(公共)或文件夹(目录列表)。
- IP 白名单:将网关锁定到已知服务器 IP。
- 来源限制:限制特定 HTTP 来源,适用于仅浏览器的 CORS 场景。
- 图片优化:
/image/{cid}端点支持实时缩放、裁剪和格式转换,无需额外图片 CDN。
如果你的场景是向 Web 前端提供静态资源,CORS 来源限制和内置图片优化端点可以省去一个独立的服务集成。
固定已有 CID
已经有来自其他节点或服务的 CID?两个平台都支持直接 pin 而无需重新上传。在 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 会拉取并 pin 该内容。如果你的思维方式是以 IPFS 为核心而非 S3,IPFS Ninja 以 CID 为优先的工作流更为直接。
参阅 what is IPFS pinning,深入了解 pinning 的重要性以及内容未被 pin 时会发生什么。
客户端上传而不泄露凭证
这是一个常见的架构问题:如何让浏览器上传文件到 IPFS,同时不把 API 密钥暴露给客户端?
Filebase 的做法:在服务端生成一个预签名 S3 PUT URL,返回给客户端,客户端直接 PUT。这是标准 S3 预签名模式,可以正常工作,但需要你自行实现服务端签名端点。
IPFS Ninja 的做法:调用 /token/upload/new(或通过控制台生成)创建签名上传令牌。将该令牌嵌入前端,客户端使用 Authorization: Signed {token} 向 api.ipfs.ninja 发 POST 请求。令牌可设置过期时间,也可随时从控制台吊销。
// 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);关于上传模式的更深入讲解,请参阅 how to upload files to IPFS。
何时仍应选择 Filebase
这篇文章力求客观,而非单方面的推销。
选择 Filebase,如果:
- 你的代码库已使用 AWS SDK v3 或 Boto3,希望零额外依赖。
- 你正在从 S3 迁移到 IPFS,希望只替换端点而无需重写上传逻辑。
- 你存储超大文件,需要可靠的 S3 语义 multipart 上传(尽管 IPFS Ninja 也有大文件上传 API)。
- 团队在 AWS 上经验深厚,觉得 S3 鉴权比 REST 头更熟悉。
选择 IPFS Ninja,如果:
- 你希望一次
POST /upload/new就能立即拿到 CID,无需中间步骤。 - 你在开发前端优先的应用,需要客户端安全的上传令牌,而不想自建预签名基础设施。
- 你希望图片优化和访问控制网关开箱即用,而不引入额外服务。
- 你对价格敏感,$5/mo 的入门价对你项目阶段很重要。
总结
Filebase 对于已深度融入 AWS 生态的团队来说是一款扎实的产品,其 S3 兼容性在对应场景下是真实优势。但对于只想通过简洁 REST API 将文件 pin 到 IPFS 并立即拿到 CID 的开发者而言,S3 层只增加了仪式感,却没有带来实质收益。
IPFS Ninja 将 API 接口保持在最小限度:上传、pin、获取。网关、图片优化和上传令牌功能在你需要时可用,不是强制前置条件。
如需更全面地了解 IPFS Ninja 与其他服务的对比,请参阅 best IPFS pinning services。
准备好开始 pinning 了吗? 创建免费账户——500 个文件,1 GB 存储,无需信用卡。
关于本文:本文由 AI 助手使用 IPFS.NINJA 的内容生成工作流起草,经 Nacho Coll 审阅并批准。所有代码示例均已在 IPFS.NINJA 线上 API 上验证。如发现任何错误,请在 https://github.com/ipfs-ninja/feedback 提交 issue。了解更多关于我们如何在内容中使用 AI 以及IPFS.NINJA 背后的团队。

