@fleekhq/fleek-cli
TypeScript icon, indicating that this package has built-in type declarations

0.1.8 • Public • Published

Fleek CLI - Programmatic Usage and API

Fleek Dev Slack License

Fleek Hosting/Storage – Programmatic usage and API

Introduction

Fleek CLI is a new release that will give you access to all of Fleek's tools directly from your terminal. Currently it allows you to log in and generate API keys that you can use with Fleek Storage; and interact with our hosting tools to initialize and deploy sites. Since Fleek Storage provides a S3 interface, you can use any S3 compatible SDK to access it from anywhere by providing the generated API keys.

Installation

npm install -g @fleekhq/fleek-cli

Logging in and Getting the API key

Run the following command:

fleek login

It should open a browser window prompting you to log in. If you are already logged in, it will automatically close the browser window and generate the keys.

Next, run the command

fleek whoami

Take note of the fields apiKey and apiSecret which will be needed in the next step.

Sites

You can use the Fleek CLI to link your local sites static

Initialize and linking local site directory to fleek

To initialize a fleek site in your local directory run the command:

fleek site:init

Follow the prompts to either create a new site or link an existing site you have on fleek.

Deploying changes from your site

To deploy changes in your publish directory, run:

fleek site:deploy

This would package content in your configured public directory and deploy it to the linked site.

Storage

Accessing your bucket from code

In this example we are going to use AWS SDK for Node.JS. Note that AWS SDK is available for multiple other languages such as JavaScript, Go, C++, Python and Ruby, so this example should be adaptable to most existing applications.

First, make sure that you install the dependencies in your package.json file. You can do this by running:

npm init

npm install --save aws-sdk

Then, the following script outlines how to list your Fleek Storage buckets (replacing [[apiKey]] and [[apiSecret]] with the values obtained in the previous step).

const AWS = require('aws-sdk');

const s3 = new AWS.S3({
    apiVersion: '2006-03-01',
    accessKeyId: '[[apiKey]]',
    secretAccessKey: '[[apiSecret]]',
    endpoint: 'https://storageapi.fleek.co',
    region: 'us-east-1',
    s3ForcePathStyle: true
 });

s3.listBuckets(function (err, data) {
    if (err) {
      console.log("Error when listing buckets", err);
    } else {
      console.log("Success when listing buckets", data);
    }
 });

Once you have your bucket name, you can fetch its contents using the following script:

const params = {
     Bucket: "my-bucket",
     MaxKeys: 20
  };

s3.listObjectsV2(params, function (err, data) {
     if (err) {
        console.log("Error when listing objects", err);
     } else {
        console.log("Success when listing objects", data);
     }
 });

Please read AWS SDK documentation for a full reference about other operations you can do on an S3 compatible API.

Accessing from the Terminal

AWS also has tools for interacting with S3 from the terminal using AWS CLI. To do this, first install AWS CLI from https://aws.amazon.com/cli/

Then, configure the AWS CLI to point to Fleek Storage endpoint (again, replacing [[apiKey]] and [[apiSecret]] with the values obtained in the previous step).:

aws configure AWS Access Key ID [None]: [[apiKey]] AWS Secret Access Key [None]: [[apiSecret]] Default region name [None]: us-east-1 Default output format [None]: ENTER

To list your buckets, run the following command:

aws --endpoint-url https://storageapi.fleek.co s3 ls

To list objects within a bucket, run:

aws --endpoint-url https://storageapi.fleek.co s3 ls s3://my-bucket

Dependents (1)

Package Sidebar

Install

npm i @fleekhq/fleek-cli

Weekly Downloads

793

Version

0.1.8

License

MIT

Unpacked Size

153 kB

Total Files

115

Last publish

Collaborators

  • bhflume
  • jsonsivar
  • janisonfleek
  • terminalsystemsinc
  • vojtechatfleek