|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"io"
|
|
|
|
"log"
|
|
|
|
"os"
|
|
|
|
|
|
|
|
"github.com/codegangsta/cli"
|
|
|
|
)
|
|
|
|
|
|
|
|
func get(c *cli.Context) {
|
|
|
|
config, err := parseInput(c)
|
|
|
|
if err != nil {
|
|
|
|
log.Fatal(err)
|
|
|
|
}
|
|
|
|
var objectReader io.Reader
|
|
|
|
objectName := c.Args().Get(0)
|
|
|
|
|
|
|
|
switch config.storageDriver {
|
|
|
|
case "fs":
|
|
|
|
{
|
|
|
|
if len(objectName) == 0 {
|
|
|
|
if objectReader, err = fsGetList(config); err != nil {
|
|
|
|
log.Fatal(err)
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
if objectReader, err = fsGet(config, objectName); err != nil {
|
|
|
|
log.Fatal(err)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
case "erasure":
|
|
|
|
{
|
|
|
|
if len(objectName) == 0 {
|
|
|
|
if objectReader, err = erasureGetList(config); err != nil {
|
|
|
|
log.Fatal(err)
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
if objectReader, err = erasureGet(config, objectName); err != nil {
|
|
|
|
log.Fatal(err)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
default:
|
|
|
|
{
|
|
|
|
log.Fatal("Unknown driver")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if objectReader == nil {
|
|
|
|
log.Fatal("Object not found")
|
|
|
|
}
|
|
|
|
io.Copy(os.Stdout, objectReader)
|
|
|
|
}
|