command
module
Version:
v0.0.0-...-fc872c1
Opens a new window with list of versions in this module.
Published: Jan 22, 2015
License: Apache-2.0
Opens a new window with license information.
Imports: 7
Opens a new window with list of imports.
Imported by: 0
Opens a new window with list of known importers.
README
¶
Blocker
A block based filesystem microservice written in go
##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
¶
There is no documentation for this package.
Source Files
¶
Directories
¶
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 |
Click to show internal directories.
Click to hide internal directories.