mirror of
https://github.com/seaweedfs/seaweedfs.git
synced 2024-01-19 02:48:24 +00:00
Add types to uploading
This commit is contained in:
parent
7ad6cd35e8
commit
4ecf5956d7
|
@ -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
|
||||||
|
|
|
@ -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 (
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
Loading…
Reference in a new issue