Skip to content

filebase/filebase-cli

Repository files navigation

• Filebase CLI •

Developer Friendly [ IPFS | IPNS | S3 ]

Beta

This CLI is currently in Beta. If you find any issues please kindly file a report.
Thank you for your patience while this project is developed!

About

The Filebase CLI provides a hybrid data management solution, blending S3-compatible cloud storage with IPFS (InterPlanetary File System) pinning services. It features robust S3 bucket management, object handling for uploads and downloads, and seamless integration with IPFS and IPNS (InterPlanetary Naming System) for decentralized storage operations. The SDK supports advanced data tasks like compiling files into CAR (Content Addressable aRchive) formats and ensures secure transactions through strong authentication. Designed for varied applications, the Filebase CLI is ideal for scenarios demanding the dependability of cloud storage combined with the advantages of decentralized, peer-to-peer storage, catering to diverse needs such as content distribution, data backup, and archival. Developing InterPlanetary Applications has never been easier.

JS Client

Install the package using npm or download a binary from the releases for your supported operating system.

npm install -g @filebase/cli

or yarn:

yarn global add @filebase/cli

Getting started

The snippet below shows how to create a new bucket, upload a new object to IPFS, publish the object to IPNS, delete the object and finally delete the bucket.

To use the CLI in your project, use npm or yarn to install the @filebase/cli module. Requires node.js 16+. You can also find pre-built binaries in the releases section.

Using NPX

// Login
npx @filebase/cli auth login [key] [secret]
// Create Bucket 
npx @filebase/cli create bucket random-bucket-name
// Set Default Bucket
npx @filebase/cli auth bucket random-bucket-name
// Upload Random File
npx @filebase/cli object upload random-file ./random-file.txt
// Download Random File
npx @filebase/cli object download random-file
// Create IPNS Name
npx @filebase/cli name create myFirstIpnsKey QmQSQYNn2K6xTDLhfNcoTjBExz5Q5gpHHBTqZZKdxsPRB9
// Create IPFS Gateway
npx @filebase/cli gateway create myFirstIpfsGateway
// Create IPFS Pin
npx @filebase/cli pin create my-pin QmTJkc7crTuPG7xRmCQSz1yioBpCW3juFBtJPXhQfdCqGF

Using Binary

// Login
filebase auth login [key] [secret]
// Create Bucket 
filebase create bucket random-bucket-name
// Set Default Bucket
filebase auth bucket random-bucket-name
// Upload Random File
filebase object upload random-file ./random-file.txt
// Download Random File
filebase object download random-file
// Create IPNS Name
filebase name create myFirstIpnsKey QmQSQYNn2K6xTDLhfNcoTjBExz5Q5gpHHBTqZZKdxsPRB9
// Create IPFS Gateway
filebase gateway create myFirstIpfsGateway
// Create IPFS Pin
filebase pin create my-pin QmTJkc7crTuPG7xRmCQSz1yioBpCW3juFBtJPXhQfdCqGF