Skip to content

andrewwebber/blocker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

73 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Blocker

A block based filesystem microservice written in go GoDoc Build Status

##Features

  • Files are stored in blocks
  • Immutable blocks (Append Only)
  • Blocks are hashed
  • Blocks are encrypted with own unique Symmetric Key (Symmetric Keys are Encrypted with RSA Master Key)
  • Blocks are compressed using Snappy Compression
  • Reduces data duplication
  • Files where blocks have not changed reference old blocks
  • A REST interface for manipulating blocks
  • Uses couchbase for BlockedFiles repository
  • Possible to specify mulitple Storage Providers.
    • nfs - Local mount disk storage
    • couchbase - Couchbase Raw Binary storage
    • azure - Azure Simple Storage
    • s3 - Planned s3 storage

##REST API

The REST API interface can be used to perform operations against the Filesystem. Default location is localhost:8010.

HTTP Method URI path Description
GET /api/blocker Retrieves a hello.
GET /api/blocker/{itemID} Retrieves a BlockedFile based on the passed ID
DELETE /api/blocker/{itemID} Delete a BlockedFile based on the passed ID
COPY /api/blocker/{itemID} Creates a copy of a BlockedFile based on the passed ID
POST /api/blocker Uploads a file and returns a newly created BlockedFile
PUT /api/blocker Uploads a file and returns a newly created BlockedFile

##Example code Example test scenario

##TODO

  • Move encryption from TOY format to be a bit more secure
  • The store should not use the hash as the ID as this would then be a predictable location for a file. A problem?
  • Permissions
  • Authentication

About

A block file system

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages