Filebase
HomepageFilebase DashboardDiscordBlog
  • 👋Welcome to Filebase!
  • Getting Started
    • FAQ
    • Service Limits
    • Getting Started Guides
      • Pin Your First File To IPFS
      • Developer Quick Start Guide
  • IPFS Concepts
    • What is IPFS?
    • What is an IPFS CID?
    • What is IPFS Pinning?
    • What is an IPFS Gateway?
  • IPFS Pinning
    • Pinning Files
    • Listing Files
    • Deleting Files
    • Event Notifications
  • IPNS Names
    • Managing Names
  • Dedicated IPFS Gateways
    • Managing Dedicated Gateways
    • Access Controls
    • Image Optimizations
    • Adding a Custom Domain
  • API Documentation
    • S3-Compatible API
      • Cross Origin Resource Sharing (CORS)
        • Create and Apply a CORS Rule to a Filebase Bucket
        • Deep Dive: Cross Origin Resource Sharing (CORS)
      • Pre-Signed URLs
    • Filebase Platform APIs
    • IPFS Pinning Service API
  • Code Development + SDKs
    • Code Development
      • Apache Libcloud - Python
      • Apostrophe CMS
      • AWS Lambda - NodeJS
      • AWS Lambda - Python
      • AWS SDK - Go (Golang)
      • AWS SDK - Java
      • AWS SDK - JavaScript
      • AWS SDK - .NET
      • AWS SDK - PHP
      • AWS SDK - Python
      • AWS SDK - Ruby
      • Code Examples
        • How To Utilize Filebase with NodeJS
      • DataCamp
      • Dart / Flutter
      • Django
      • Docker
        • Docker Volume Backup
      • Elixir Phoenix
      • Filebase NPM Package
      • Fog.io - Ruby
      • Google App Scripts
      • Integrated Haskell Platform
      • Laravel
      • Nuxt
      • Paperspace
      • Postman
      • Reading a JSON File
      • UNA
      • Unity
      • Uppy AWS S3 Plugin
      • Vue
      • Watcher for NodeJS
      • Webpack S3 Plugin
      • Xamarin
    • SDK Examples: Pinning Files and Folders to IPFS
      • AWS SDK for .NET
      • AWS SDK for Go
      • AWS SDK for JavaScript
      • AWS SDK for PHP
      • AWS SDK for Python
      • AWS SDK for Ruby
  • Archive
    • Content Archive
      • IPFS Getting Started Guide
      • Web Console Getting Started Guide
      • IPFS Tools
        • IPFS CLI
        • IPFS Desktop
        • IPFS Pin Sync
        • IPFS Pinning Service API
        • IPFS3up
      • Third Party Tools and Clients
        • Backup Client Configurations
          • AhsayCBS
          • BackupAssist Classic
          • BackupAssist ER
          • BackupNinja
          • BackupSheep
          • Bacula Enterprise Edition
          • CloudBacko
          • CloudBerry Backup
          • Cloudron
          • cPanel
          • Comet
          • Commvault
          • Duplicacy
          • Ghost IPFS Storage Adapter
          • IPFS Pinning GitHub Action
          • JetBackup
          • Kopia
          • MoveBot
          • MSP360 Online Backup
          • oDrive
          • Photos+ Cloud Library
          • qBackup
          • S3 Uploader for GitHub Actions
          • SimpleBackups
          • SnapShooter
          • Strapi Provider Plugin
          • Veeam
          • Wordpress
            • Media Cloud
            • XCloner
          • Zerto
        • CLI Tools
          • Ansible
          • Apache Pulsar
          • AWS CLI
            • How To Delete Data with AWS CLI
            • What is Multipart Upload?
          • Bash
            • Backup Files to IPFS with Bash
            • Laravel Backup with Bash
            • MongoDB Backup with Bash
            • PostgreSQL Backup with Bash
            • Wordpress Backup with Bash
          • cURL
          • Elasticsearch
          • IPFS-CAR
          • IPFScrape
          • IPGet
          • Jenkins
          • JFrog Artifactory
          • Kubernetes
            • Backup and Restore InFluxDB to Filebase with TrilioVault
            • CSI-S3
            • Kasten K10
            • Kerberos Vault
            • Longhorn.io
            • Stash for Kubernetes
            • Velero
          • Litestream
          • Minty
          • MongoDB
          • MoSMB
          • MySQL
          • Next.js .CAR File Upload
          • NFT Image Generator
          • NGINX S3 Gateway
          • Pinning Docker Images to IPFS
          • Pinning Encrypted Files to IPFS
          • PowerShell
            • Calculate the Size of Filebase Buckets using PowerShell
          • Rclone
            • Backing Up DigitalOcean Spaces to Filebase using Rclone
          • Restic
          • S3cmd
          • S3Express
          • S3FS-FUSE
          • S3QL
          • S3Surfer
          • S4cmd
          • SeaweedFS
          • Tableland
        • Content Delivery Networks
          • Bunny CDN
          • CloudFront CDN
          • Fastly CDN
        • File Management Client Configurations
          • Airbyte
          • Arq
          • Astiga
          • AWS Rekognition
          • AWS S3 Manager - iOS App
          • BucketAnywhere for S3 - Android App
          • CentreStack
          • CloudFlyer
          • Cloudfser
          • Couchdrop
          • CrossFTP
          • CyberDuck
            • How To Delete Data with CyberDuck
          • Dropshare
          • Duplicati
          • FileBrowserGO
          • Flexify.IO
          • ForkLift
          • Goofys
          • Joplin
          • LucidLink
          • MASV
          • Matrix Synapse
          • MinIO Gateway for S3
          • Mountain Duck
          • NetDrive
          • Nexfs
          • NextCloud
          • Nodeum
          • ownCloud
          • Plesk
          • Pure Storage FlashBlade
          • RaiDrive
          • S3 Browser
          • ShareX
          • SmartFTP
          • StableBit Cloud Drive
          • Storage Made Easy Enterprise File Fabric
          • WinSCP
        • NAS Device Configurations
          • Buffalo TeraStation
          • Datadobi DobiProtect
          • Netapp ONTAP Select
          • OpenDrives Atlas
          • Synology Hyper Backup
          • TrueNAS CORE
      • Knowledge Base
        • Deep Dives
          • Deep Dive: Blockchains
          • Deep Dive: Decentralized Compute
          • Deep Dive: Decentralized Digital Identity
          • Deep Dive: Decentralized Storage
          • Deep Dive: Erasure Coding
          • Deep Dive: Geo-Redundancy
          • Deep Dive: Metadata
          • Deep Dive: Metaverse
          • Deep Dive: NFTs
          • Deep Dive: Web3
        • Filebase eBooks
        • Filebase One-Pagers
        • Filebase Whitepapers
        • Web3 Tutorials
          • Alchemy
            • Alchemy: Build a dApp That Provides Real-Time Ethereum Transaction Notifications
            • Alchemy: Create a Full-Stack dApp
            • Alchemy: Create a Hello World Smart Contract
            • Alchemy: Create Your Own ERC20 Cryptocurrency
            • Alchemy: Decentralized Youtube
            • Alchemy: How to Create and Mint an NFT using Filebase
            • Alchemy: How to Mint an NFT Using Web3.js
            • Alchemy: Using The Alchemy SDK with NFTs Minted Through thirdweb
          • Agoric
            • Agoric: Create a DeFi dApp Using Agoric That’s Stored on Filebase
          • AirSwap
            • AirSwap: Track NFT Contract Addresses with AirSwap CLI
          • ArcBlock
            • ArcBlock: Running an ArcBlock Blocket Server on IPFS
          • Ankr
            • Ankr: Create a Truffle Project with Ankr and Filebase
            • Ankr: Deploy a Smart Contract on Polygon using Ankr that is backed up to Filebase
          • Avalanche
            • Avalanche: How To Launch a Generative NFT Collection With Avalanche and IPFS
          • Backing Up NFTs
          • Brownie
            • Brownie: Create and Mint an NFT Using Brownie
          • Bueno
            • Bueno: How to Create a Generative NFT Collection with Bueno
          • Cardano
            • Cardano: Submit Cardano Blockchain Transactions with Embedded Metadata Stored on Filebase
          • Ceramic
            • Ceramic: How to Host a Ceramic Node Using Decentralized Storage
          • Create-IPFS-app
          • Cosmos
            • Cosmos: Storing Cosmos Chain Governance Metadata on IPFS
          • DeCommerce
          • Ethereum Name Service
            • ENS: Configure an ENS Domain to use a Filebase IPFS Dedicated Gateway
          • Figment Datahub
            • Figment Datahub and Avalanche: Make an e-Voting dApp Using Figment Datahub, Avalanche, and Filebase
            • Figment Datahub and Celo Network: Create an ERC1155 NFT on the Celo Network using Figment Datahub and Objects Stored on Filebase
          • Flow
            • Flow: How to Create an NFT Marketplace with Filebase + Flow
          • Fauna
            • Fauna: Host an Application on IPFS with IPFS Dedicated Gateways
          • Ganache
            • Ganache: Create a dApp Hosted on IPFS
          • GUN
            • GUN: Create a Decentralized Chat App with GUN and IPFS
          • Hardhat
            • Hardhat: Creating an NFT Contract using Hardhat and Setting NFT Metadata using IPFS on Filebase
          • Harmony
            • Harmony: Deploy an HRC721 NFT on Harmony with IPFS
          • Hosting a Form on IPFS
          • iExec
            • iExec: Using iExec and Tee Worker to Create Apps that Use Datasets Stored on Filebase
          • Infura
            • Infura: Build dApp Frontends with Infura, React, and IPFS
            • Infura: Create an NFT Contract Factory with Metadata stored on IPFS
          • Lens Protocol
            • Lens Protocol: Build a Decentralized Social Media Network Stored on IPFS
          • LIT Protocol
            • LIT Protocol: Create a MintLIT NFT with LIT Protocol and IPFS
          • LivePeer
            • LivePeer: Mint a Video NFT with LivePeer
          • Macrometa
            • Macrometa: Track IPFS Files with Macrometa
          • Mina Protocol
            • Mina Protocol: Create a Simple zkApp with Mina Protocol and IPFS
          • NEAR Protocol
            • NEAR Protocol: Storing Off-Chain Data on IPFS using Filebase
          • NFTPort
            • NFTPort: Create an NFT Collection with NFTPort
          • Ocean Protocol
            • Ocean Protocol: Publish Data NFTs Stored on IPFS using Ocean Protocol
          • Pin Tezos Tokens Tool
          • Polkadot
            • Polkadot: Deploy a Polkadot dApp on Decentralized Storage
          • Polygon
            • Polygon: Building an App NFT With Polygon
            • Polygon: Make a Donation App with IPFS and Polygon
          • Python
            • Generating NFT Metadata with Python
          • QuickNode
            • QuickNode: Create a Token dApp using QuickNode
          • Remix
            • Remix: Create a Web App with Remix to Upload to Decentralized Storage
          • Remix IDE
            • Remix IDE: Creating Interactive NFTs with IPFS and Remix IDE
          • Secret Network
            • Secret Network: Create an NFT on Secret Network with Data Stored on IPFS
          • Stargaze
            • Stargaze: Create an NFT Collection Using IPFS and Stargaze
          • Starknet
            • Starknet: Create a HardHat Project Using A Starknet Plugin Hosted On IPFS
          • Studio 721
            • Studio 721: Create an NFT Collection with Studio 721 and IPFS
          • Solana
            • Solana: Minting an NFT Using Sugar, Candy Machine, and Filebase
          • Subsquid
            • Subsquid: Querying NFT Data using Subsquid and a Filebase IPFS Dedicated Gateway
          • Tailwind CSS
            • Tailwind CSS: Build an Image Gallery App with IPFS and Tailwind CSS
          • Tatum
            • Tatum: How To Mint NFTs on Solana with Tatum
          • Tezos
            • Tezos: Create an NFT on the Tezos Network using IPFS on Filebase
          • thirdweb
            • thirdweb: Build an NFT Loot Box with thirdweb and IPFS
            • thirdweb: Build an NFT Minting Page with thirdweb, IPFS, RainbowKit, and WAGMI
            • thirdweb: Create a Discord Bot That Gives Roles to NFT Holders
            • thirdweb: Create a Gated Website Using NFTs and IPFS
            • thirdweb: Create an NFT Marketplace with thirdweb and IPFS
            • thirdweb: Release an NFT Drop Using thirdweb and IPFS
          • useDApp
            • useDApp: Create a dApp using useDApp and IPFS
          • Unstoppable Domains
            • Unstoppable Domains: Create a Decentralized Website Using Unstoppable Domains and IPFS Folders
            • Unstoppable Domains: Deploy a Decentralized Blog Using Unstoppable Domains, Akash, and IPFS
            • Unstoppable Domains: IPFS Configuration
          • Vultr
            • Vultr: Store Bedrock Minecraft Worlds on Decentralized Storage
            • Vultr: Store Forge Minecraft Worlds on Decentralized Storage
            • Vultr: Store PaperSpigot Minecraft Worlds on Decentralized Storage
            • Vultr: Store Vanilla Minecraft Worlds on Decentralized Storage
          • Waffle
            • Waffle: Deploy a Smart Contract with Waffle That’s Stored on IPFS
          • Walt.id
            • Walt.id: Mint an NFT with Walt.id and Filebase
          • Web3 Toolbox
            • Web3 Toolbox: Building an NFT Drop With Web3 Toolbox
Powered by GitBook
On this page
  • What is ERC1155?
  • What is Celo?
  • What is Figment DataHub?
  • 1. Login to your Figment Datahub console. Select ‘Create App’ to create a new Celo app.
  • 2. Give your app a name, select ‘Staging’ for the environment, then select ‘Celo’ for the network.
  • 3. Once you’ve created your app, take note of the API key.
  • 4. Next, we need a Filebase IPFS bucket.
  • 5. Select ‘Buckets’ from the left side bar menu, or navigate to console.filebase.com/buckets.
  • 6. Enter a bucket name and choose the IPFS storage network to create the bucket.
  • 7. Next, select the bucket from your list of buckets, then select ‘Upload’ in the top right corner to upload an image file.
  • 8. Select an image to be uploaded.
  • 9. You can view the object’s IPFS CID in the CID column, or you can click on your uploaded object to display the metadata for the object, which includes the IPFS CID.
  • 10. Upload as many images as you’d like to use for your NFT collection and take note of the CID for each one.
  • 11. Next, download and install S3FS-FUSE on a Linux or macOS system.
  • 12. Set up Access Keys.
  • 13. Mount your bucket.
  • 14. Now, navigate into the mounted Filebase bucket.
  • 15. Next, create a new folder to house your NFT collection scripts and navigate inside of it.
  • 16. Initialize your npm workspace:
  • 17. Then install the required npm dependencies:
  • 18. Create a new Hardhat project with the following command:
  • 19. Next, install the OpenZeppelin ERC1155 library with the following command:
  • 20. Open the NFTCollection.sol file and input the following content:
  • 21. In this file, replace the // TODO text with the following:
  • 22. For each NFT ID, create a .json file with the naming scheme of {id}.json.
  • 23. Next, add the following content into the NFTCollection.sol contract below the lines you created to list your NFT names and their values:
  • 24. Next, open your hardhat.config.js file and set Solidity to the same version number that we set inside of our NFTCollection.sol contract:
  • 25. Before you can compile, you need to delete the file contracts/Greeter.sol.
  • 26. Compile your smart contract with the command:
  • 27. Now we need to create a Celo account to mint our contract on the Celo network.
  • 28. In the hardhat.config.js file, enter the following lines to import the required Celo modules:
  • 29. Next, create a file called celo_deploy.js.
  • 30. Open the hardhat.config.js file again and add another task for deploying our contract:
  • 31. Run this celo-deploy script to deploy your contract:

Was this helpful?

  1. Archive
  2. Content Archive
  3. Knowledge Base
  4. Web3 Tutorials
  5. Figment Datahub

Figment Datahub and Celo Network: Create an ERC1155 NFT on the Celo Network using Figment Datahub and Objects Stored on Filebase

Learn how to create a ERC1155 NFT on the Celo Network using Figment Datahub and objects stored on Filebase.

PreviousFigment Datahub and Avalanche: Make an e-Voting dApp Using Figment Datahub, Avalanche, and FilebaseNextFlow

Last updated 9 months ago

Was this helpful?

What is ERC1155?

ERC1155 is a novel token standard that aims to take the best from previous standards to create a fungibility-agnostic and gas-efficient token contract. ERC1155 draws ideas from all of ERC20, ERC721, and ERC777. ERC1155s are commonly used in NFT collectible projects, although they are not typically viewed as 'fine art' it is not unreasonable to use this token standard for such purposes.

What is Celo?

Celo is a global payment infrastructure platform for cryptocurrencies that targets mobile device end users.

What is Figment DataHub?

Figment DataHub is a platform that enables developers to create decentralized applications (dApps) using the powerful and unique features of blockchain technology without having to be experts on the wide variety of blockchain protocols.

Prerequisites:

This guide was written and tested using Ubuntu 20.04. Commands and workflow may vary depending on your operating system.

1. Login to your console. Select ‘Create App’ to create a new Celo app.

2. Give your app a name, select ‘Staging’ for the environment, then select ‘Celo’ for the network.

Then use the ‘Create App’ button to create your new Celo app.

3. Once you’ve created your app, take note of the API key.

We will reference this API key later.

4. Next, we need a Filebase IPFS bucket.

Select ‘Create Bucket’ in the top right corner to create a new bucket.

6. Enter a bucket name and choose the IPFS storage network to create the bucket.

Bucket names must be unique across all Filebase users, be between 3 and 63 characters long, and can contain only lowercase characters, numbers, and dashes.

7. Next, select the bucket from your list of buckets, then select ‘Upload’ in the top right corner to upload an image file.

8. Select an image to be uploaded.

Once uploaded, it will be listed in the bucket.

9. You can view the object’s IPFS CID in the CID column, or you can click on your uploaded object to display the metadata for the object, which includes the IPFS CID.

Choose the method you prefer, and take note of the IPFS CID.

10. Upload as many images as you’d like to use for your NFT collection and take note of the CID for each one.

12. Set up Access Keys.

Set up a credentials file for S3FS at ${HOME}/.passwd-s3fs.

You will need to save your Filebase Access and Secret keys to this file and give it owner permissions. You can do so with the following commands:

echo ACCESS_KEY_ID:SECRET_ACCESS_KEY > ${HOME}/.passwd-s3fs

chmod 600 ${HOME}/.passwd-s3fs

13. Mount your bucket.

You can mount a Filebase IPFS bucket with the command:

s3fs mybucket /path/to/mountpoint -o passwd_file=${HOME}/.passwd-s3fs -o url=https://s3.filebase.com

  • mybucket: name of your Filebase bucket

  • /path/to/mountpoint

14. Now, navigate into the mounted Filebase bucket.

cd /path/to/mounted/bucket

15. Next, create a new folder to house your NFT collection scripts and navigate inside of it.

mkdir nftcollection

cd nftcollection

16. Initialize your npm workspace:

npm init

17. Then install the required npm dependencies:

npm install --save-dev hardhat

npm install --save-dev @nomiclabs/hardhat-waffle ethereum-waffle chai @nomiclabs/hardhat-ethers ethers web3 @celo/contractkit

18. Create a new Hardhat project with the following command:

npx hardhat

During the Hardhat initialization, select ‘Create a sample project’.

19. Next, install the OpenZeppelin ERC1155 library with the following command:

npm install @openzeppelin/contracts

touch contracts/NFTCollection.sol

This command also creates a new file called NFTCollection.sol

20. Open the NFTCollection.sol file and input the following content:

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import "@openzeppelin/contracts/token/ERC1155/ERC1155.sol";
contract NFTCollection is ERC1155 {
  // TODO
}

21. In this file, replace the // TODO text with the following:

uint256 public constant CLOUD = 0;
uint256 public constant BUTTON = 1;
uint256 public constant ROBOT = 2;

22. For each NFT ID, create a .json file with the naming scheme of {id}.json.

For example, for the CLOUD NFT with an ID of 0, we would create 0.json with the following content:

{
  "name": "Cloud",
  "description": "Filebase Cloud",
  "image": "https://ipfs.filebase.io/ipfs/{IPFS-CID}"
}

Replace the {CID} with the CID associated with the image uploaded to your Filebase bucket.

23. Next, add the following content into the NFTCollection.sol contract below the lines you created to list your NFT names and their values:

constructor() ERC1155("/local/path/to/json/files/{id}.json") {
    }
    
    //If you do not have a Cloud the contract will let you buy one
    function mintVillage() public{
        require(balanceOf(msg.sender,CLOUD) == 0,"you already have a Cloud ");
        _mint(msg.sender,CLOUD,1,"0x000");
    }
    
    //If you do not have a Button and have a Cloud the contract will let you buy the Button
    function mintMine() public{
        require(balanceOf(msg.sender,CLOUD) > 0,"you need to have a Cloud");
        require(balanceOf(msg.sender,BUTTON) == 0,"you already have a Button");
        _mint(msg.sender,BUTTON,1,"0x000");
    }
    
    //If you do not have a Robot and have a Cloud the contract will let you buy the Robot
    function mintFarm() public{
        require(balanceOf(msg.sender,CLOUD) > 0,"you need to have a Cloud");
        require(balanceOf(msg.sender,ROBOT) == 0,"you already have a Robot");
        _mint(msg.sender,ROBOT,1,"0x000");
    }

24. Next, open your hardhat.config.js file and set Solidity to the same version number that we set inside of our NFTCollection.sol contract:

module.exports = {
  solidity: "0.8.0",
};

25. Before you can compile, you need to delete the file contracts/Greeter.sol.

This file will interfere with the contract file we created when we compile it.

26. Compile your smart contract with the command:

npx hardhat compile

27. Now we need to create a Celo account to mint our contract on the Celo network.

Create a new file called celo_account.js with the following content:

const Web3 = require('web3')
const fs = require('fs')
const path = require('path')
const web3 = new Web3()
const privateKeyFile = path.join(__dirname, './.secret')

// Function getAccount will return the address of your account
const getAccount = () => {
    const secret = fs.readFileSync(privateKeyFile);
    const account = web3.eth.accounts.privateKeyToAccount(secret.toString())
    return account;
}

// Function setAccount will create new account and save the privateKey in .secret file 
const setAccount = () => {
    const newAccount = web3.eth.accounts.create()
    fs.writeFileSync(privateKeyFile, newAccount.privateKey, (err) => {
        if (err) {
            console.log(err);
        }
    })
    console.log(`Address ${newAccount.address}`)
}
module.exports = {
    getAccount,
    setAccount
}

28. In the hardhat.config.js file, enter the following lines to import the required Celo modules:

const fs = require('fs')
const path = require('path')
const privateKeyFile = path.join(__dirname, './.secret')
const Account = require('./celo_account');

Then under the existing tasks in that file, insert the following task:

task("celo-account", "Prints account address or create a new", async () => {
    fs.existsSync(privateKeyFile) ? console.log(`Address ${Account.getAccount().address}`) : Account.setAccount();
});

29. Next, create a file called celo_deploy.js.

In this file, insert the following code:

const Web3 = require('web3')
const ContractKit = require('@celo/contractkit')

const web3 = new Web3('https://celo-alfajores--rpc.datahub.figment.io/apikey/Datahub CELO API Key/')
const kit = ContractKit.newKitFromWeb3(web3)
const data = require('./artifacts/contracts/NFTCollection.sol/NFTCollection.json')
const Account = require('./celo_account');

async function NFTCollection() {
    const account = Account.getAccount()
    kit.connection.addAccount(account.privateKey) 
    let tx = await kit.connection.sendTransaction({
        from: account.address,
        data: data.bytecode
    })
     return tx.waitReceipt()
}
module.exports = {
    NFTCollection
}

Replace the DataHub CELO API Key with the Figment DataHub API key we took note of at the beginning of this tutorial.

30. Open the hardhat.config.js file again and add another task for deploying our contract:

const Deploy = require('./celo_deploy');

task("celo-deploy", "Prints account address or create a new", async () => {
    const tx = await Deploy.NFTCollection();
    console.log(tx);
    console.log(`save the contract address ${tx.contractAddress}`)
});

31. Run this celo-deploy script to deploy your contract:

npx hardhat celo-deploy

This will return your contract address.

To do this, navigate to . If you don’t have an account already, , then log in.

5. Select ‘Buckets’ from the left side bar menu, or navigate to .

11. Next, S3FS-FUSE on a Linux or macOS system.

ACCESS_KEY_ID is your Filebase Access key, and SECRET_ACCESS_KEY is your Filebase Secret key. For more information on Filebase access keys, see .

From here, you can use this contract to interact with your NFT. You can use it in an application, such as a React App, that allows users to interact with your NFT collection through a user interface. Check out an example React App .

MetaMask
Install Node.js and npm
Celo Network
Celo Faucet.
Sign up
Figment Datahub
console.filebase.com
sign up
console.filebase.com/buckets
download and install
here
here