aboutsummaryrefslogtreecommitdiff
path: root/go/cmd/upload.go
diff options
context:
space:
mode:
Diffstat (limited to 'go/cmd/upload.go')
-rw-r--r--go/cmd/upload.go113
1 files changed, 0 insertions, 113 deletions
diff --git a/go/cmd/upload.go b/go/cmd/upload.go
deleted file mode 100644
index 0260c9c87..000000000
--- a/go/cmd/upload.go
+++ /dev/null
@@ -1,113 +0,0 @@
-package main
-
-import (
- "encoding/json"
- "errors"
- "fmt"
- "net/url"
- "os"
- "path"
- "code.google.com/p/weed-fs/go/operation"
- "code.google.com/p/weed-fs/go/util"
- "strconv"
-)
-
-var uploadReplication *string
-
-func init() {
- cmdUpload.Run = runUpload // break init cycle
- cmdUpload.IsDebug = cmdUpload.Flag.Bool("debug", false, "verbose debug information")
- server = cmdUpload.Flag.String("server", "localhost:9333", "weedfs master location")
- uploadReplication = cmdUpload.Flag.String("replication", "000", "replication type(000,001,010,100,110,200)")
-}
-
-var cmdUpload = &Command{
- UsageLine: "upload -server=localhost:9333 file1 [file2 file3]",
- Short: "upload one or a list of files",
- Long: `upload one or a list of files.
- It uses consecutive file keys for the list of files.
- e.g. If the file1 uses key k, file2 can be read via k_1
-
- `,
-}
-
-type AssignResult struct {
- Fid string "fid"
- Url string "url"
- PublicUrl string "publicUrl"
- Count int
- Error string "error"
-}
-
-func assign(count int) (*AssignResult, error) {
- values := make(url.Values)
- values.Add("count", strconv.Itoa(count))
- values.Add("replication", *uploadReplication)
- jsonBlob, err := util.Post("http://"+*server+"/dir/assign", values)
- debug("assign result :", string(jsonBlob))
- if err != nil {
- return nil, err
- }
- var ret AssignResult
- err = json.Unmarshal(jsonBlob, &ret)
- if err != nil {
- return nil, err
- }
- if ret.Count <= 0 {
- return nil, errors.New(ret.Error)
- }
- return &ret, nil
-}
-
-func upload(filename string, server string, fid string) (int, error) {
- debug("Start uploading file:", filename)
- fh, err := os.Open(filename)
- if err != nil {
- debug("Failed to open file:", filename)
- return 0, err
- }
- ret, e := operation.Upload("http://"+server+"/"+fid, path.Base(filename), fh)
- if e != nil {
- return 0, e
- }
- return ret.Size, e
-}
-
-type SubmitResult struct {
- Fid string "fid"
- Size int "size"
- Error string "error"
-}
-
-func submit(files []string) []SubmitResult {
- ret, err := assign(len(files))
- if err != nil {
- fmt.Println(err)
- return nil
- }
- results := make([]SubmitResult, len(files))
- for index, file := range files {
- fid := ret.Fid
- if index > 0 {
- fid = fid + "_" + strconv.Itoa(index)
- }
- results[index].Size, err = upload(file, ret.PublicUrl, fid)
- if err != nil {
- fid = ""
- results[index].Error = err.Error()
- }
- results[index].Fid = fid
- }
- return results
-}
-
-func runUpload(cmd *Command, args []string) bool {
- *IsDebug = true
- if len(cmdUpload.Flag.Args()) == 0 {
- return false
- }
- results := submit(args)
- bytes, _ := json.Marshal(results)
- fmt.Print(string(bytes))
- return true
-}