erasure encoded demo

This commit is contained in:
Frederick F. Kautz IV
2014-12-11 00:32:32 -08:00
parent e5995f0193
commit 568ca4e1bc
6 changed files with 421 additions and 2 deletions

View File

@@ -0,0 +1,46 @@
package main
import (
"errors"
"io"
"os"
"path"
"github.com/minio-io/minio/pkgs/storage"
es "github.com/minio-io/minio/pkgs/storage/encodedstorage"
)
func erasureGetList(config inputConfig) (io.Reader, error) {
// do nothing
return nil, errors.New("Not Implemented")
}
func erasureGet(config inputConfig, objectPath string) (io.Reader, error) {
var objectStorage storage.ObjectStorage
rootDir := path.Join(config.rootDir, config.storageDriver)
objectStorage, err := es.NewStorage(rootDir, 10, 6, 1024*1024)
if err != nil {
return nil, err
}
object, err := objectStorage.Get(objectPath)
if err != nil {
return nil, err
}
return object, nil
}
func erasurePut(config inputConfig, objectPath string, reader io.Reader) error {
var err error
rootDir := path.Join(config.rootDir, config.storageDriver)
if err := os.MkdirAll(rootDir, 0700); err != nil {
return err
}
var objectStorage storage.ObjectStorage
if objectStorage, err = es.NewStorage(rootDir, 10, 6, 1024*1024); err != nil {
return err
}
if err = objectStorage.Put(objectPath, reader); err != nil {
return err
}
return nil
}

View File

@@ -29,6 +29,12 @@ func get(c *cli.Context) {
}
}
}
case "erasure":
{
if objectReader, err = erasureGet(config, objectName); err != nil {
log.Fatal(err)
}
}
default:
{
log.Fatal("Unknown driver")

View File

@@ -29,7 +29,15 @@ func put(c *cli.Context) {
switch config.storageDriver {
case "fs":
{
fsPut(config, c.Args().Get(0), inputFile)
if err := fsPut(config, c.Args().Get(0), inputFile); err != nil {
log.Fatal(err)
}
}
case "erasure":
{
if err := erasurePut(config, c.Args().Get(0), inputFile); err != nil {
log.Fatal(err)
}
}
default:
{