Skip to content

aryan55254/Silo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Silo

Silo is a lightweight, local object storage server accessible over HTTP. It maps object keys directly to a directory structure on the local filesystem while mitigating path traversal attacks.

API

Upload Object

Uploads a file to the specified key. PUT /objects/:key

Download Object

Downloads the file at the specified key. GET /objects/:key

Delete Object

Deletes the file at the specified key. Empty parent directories are automatically cleaned up. DELETE /objects/:key

List Objects

Returns a JSON array of all object keys. GET /objects

Parameters:

  • prefix (optional): Filter the listed keys by a specific path prefix. (e.g., GET /objects?prefix=images/)

Storage

All objects are stored in the data/ directory relative to the process's current working directory.

How to Run

Ensure dependencies are installed and run the server directly via tsx:

npm install
npx tsx src/store.ts

The server will listen on port 4000 by default.

About

Very Simple Single Node FileSystem Backed Object Storage Engine In Typecript(Node).

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors