blocker

command module
v0.0.0-...-fc872c1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 22, 2015 License: Apache-2.0 Imports: 7 Imported by: 0

README

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

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
Package blocks is a framework for a block based Filesystem Current version: experimental
Package blocks is a framework for a block based Filesystem Current version: experimental
Package crypto is used for encyption of bytes This is TOY encryption and keep the RSA privatekey next to the encrypted AES key.
Package crypto is used for encyption of bytes This is TOY encryption and keep the RSA privatekey next to the encrypted AES key.
Extensions to the go-check unittest framework.
Extensions to the go-check unittest framework.
Package server is used to serve blocked files via http Current version: experimental
Package server is used to serve blocked files via http Current version: experimental

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL