mirror of
https://github.com/minio/minio.git
synced 2025-11-07 04:42:56 -05:00
erasure encoded demo
This commit is contained in:
46
cmd/erasure-demo/erasure.go
Normal file
46
cmd/erasure-demo/erasure.go
Normal 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
|
||||
}
|
||||
@@ -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")
|
||||
|
||||
@@ -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:
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user