Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

supabase/storage

Open more actions menu

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Supabase Storage Engine

Coverage Status

A scalable, light-weight object storage service.

Read this post on why we decided to build a new object storage service.

  • Multi-protocol support (HTTP, TUS, S3, Iceberg)
  • Uses Postgres as its datastore for storing metadata
  • Authorization rules are written as Postgres Row Level Security policies
  • Integrates with S3 Compatible Storages
  • Extremely lightweight and performant

Supported Protocols

  • HTTP/REST
  • TUS Resumable Upload
  • S3 Compatible API
  • Iceberg REST Catalog

Architecture

Documentation

Development

  • Copy .env.sample to .env file.
  • Copy .env.test.sample to .env.test.
cp .env.sample .env && cp .env.test.sample .env.test

Your root directory should now have both .env and .env.test files.

  • Then run the following:
# this sets up a postgres database and postgrest locally via docker
npm run infra:restart
# Start the storage server
npm run dev

The server should now be running at http://localhost:5000/

The following request should insert and return the list of buckets.

# insert a bucket named avatars
curl --location --request POST 'http://localhost:5000/bucket' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoic2VydmljZV9yb2xlIiwiaWF0IjoxNjEzNTMxOTg1LCJleHAiOjE5MjkxMDc5ODV9.th84OKK0Iz8QchDyXZRrojmKSEZ-OuitQm_5DvLiSIc' \
--header 'Content-Type: application/json' \
--data-raw '{
    "name": "avatars"
}'

# get buckets
curl --location --request GET 'http://localhost:5000/bucket' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoic2VydmljZV9yb2xlIiwiaWF0IjoxNjEzNTMxOTg1LCJleHAiOjE5MjkxMDc5ODV9.th84OKK0Iz8QchDyXZRrojmKSEZ-OuitQm_5DvLiSIc'

Testing

To perform your tests you can run the following command: npm test

About

S3 compatible object storage service that stores metadata in Postgres

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Sponsor this project

 

Packages

 
 
 
Morty Proxy This is a proxified and sanitized view of the page, visit original site.