Add types to uploading

This commit is contained in:
Chris Lu 2014-04-15 10:01:13 -07:00
parent 7ad6cd35e8
commit 4ecf5956d7
3 changed files with 17 additions and 16 deletions

View file

@ -25,11 +25,11 @@ type FilePart struct {
} }
type SubmitResult struct { type SubmitResult struct {
FileName string `json:"fileName"` FileName string `json:"fileName,omitempty"`
FileUrl string `json:"fileUrl"` FileUrl string `json:"fileUrl,omitempty"`
Fid string `json:"fid"` Fid string `json:"fid,omitempty"`
Size int `json:"size"` Size uint32 `json:"size,omitempty"`
Error string `json:"error"` Error string `json:"error,omitempty"`
} }
func SubmitFiles(master string, files []FilePart, replication string, collection string, maxMB int) ([]SubmitResult, error) { func SubmitFiles(master string, files []FilePart, replication string, collection string, maxMB int) ([]SubmitResult, error) {
@ -99,7 +99,7 @@ func newFilePart(fullPathFilename string) (ret FilePart, err error) {
return ret, nil return ret, nil
} }
func (fi FilePart) Upload(maxMB int, master string) (retSize int, err error) { func (fi FilePart) Upload(maxMB int, master string) (retSize uint32, err error) {
fileUrl := "http://" + fi.Server + "/" + fi.Fid fileUrl := "http://" + fi.Server + "/" + fi.Fid
if fi.ModTime != 0 { if fi.ModTime != 0 {
fileUrl += "?ts=" + strconv.Itoa(int(fi.ModTime)) fileUrl += "?ts=" + strconv.Itoa(int(fi.ModTime))
@ -130,7 +130,7 @@ func (fi FilePart) Upload(maxMB int, master string) (retSize int, err error) {
return return
} }
func upload_one_chunk(filename string, reader io.Reader, master, replication string, collection string) (fid string, size int, e error) { func upload_one_chunk(filename string, reader io.Reader, master, replication string, collection string) (fid string, size uint32, e error) {
ret, err := Assign(master, 1, replication, collection) ret, err := Assign(master, 1, replication, collection)
if err != nil { if err != nil {
return "", 0, err return "", 0, err

View file

@ -17,9 +17,9 @@ import (
) )
type UploadResult struct { type UploadResult struct {
Name string Name string `json:"name,omitempty"`
Size int Size uint32 `json:"size,omitempty"`
Error string Error string `json:"error,omitempty"`
} }
var ( var (

View file

@ -127,7 +127,6 @@ func (vs *VolumeServer) GetOrHeadHandler(w http.ResponseWriter, r *http.Request,
} }
func (vs *VolumeServer) PostHandler(w http.ResponseWriter, r *http.Request) { func (vs *VolumeServer) PostHandler(w http.ResponseWriter, r *http.Request) {
m := make(map[string]interface{})
if e := r.ParseForm(); e != nil { if e := r.ParseForm(); e != nil {
glog.V(0).Infoln("form parse error:", e) glog.V(0).Infoln("form parse error:", e)
writeJsonError(w, r, e) writeJsonError(w, r, e)
@ -145,18 +144,20 @@ func (vs *VolumeServer) PostHandler(w http.ResponseWriter, r *http.Request) {
writeJsonError(w, r, ne) writeJsonError(w, r, ne)
return return
} }
ret, errorStatus := topology.ReplicatedWrite(vs.masterNode, vs.store, volumeId, needle, r)
ret := operation.UploadResult{}
size, errorStatus := topology.ReplicatedWrite(vs.masterNode, vs.store, volumeId, needle, r)
if errorStatus == "" { if errorStatus == "" {
w.WriteHeader(http.StatusCreated) w.WriteHeader(http.StatusCreated)
} else { } else {
w.WriteHeader(http.StatusInternalServerError) w.WriteHeader(http.StatusInternalServerError)
m["error"] = errorStatus ret.Error = errorStatus
} }
if needle.HasName() { if needle.HasName() {
m["name"] = string(needle.Name) ret.Name = string(needle.Name)
} }
m["size"] = ret ret.Size = size
writeJsonQuiet(w, r, m) writeJsonQuiet(w, r, ret)
} }
func (vs *VolumeServer) DeleteHandler(w http.ResponseWriter, r *http.Request) { func (vs *VolumeServer) DeleteHandler(w http.ResponseWriter, r *http.Request) {