aboutsummaryrefslogtreecommitdiff
path: root/go/operation/submit.go
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2014-09-20 12:38:59 -0700
committerChris Lu <chris.lu@gmail.com>2014-09-20 12:38:59 -0700
commitb9aee2defbc2f5aafbc3ea049fbe2ab5f3320999 (patch)
tree719442dc72cc30958e54e4f7e59076796b6775e9 /go/operation/submit.go
parenta092794804b2f7cbd656e439305d29bfa96ad2b9 (diff)
downloadseaweedfs-b9aee2defbc2f5aafbc3ea049fbe2ab5f3320999.tar.xz
seaweedfs-b9aee2defbc2f5aafbc3ea049fbe2ab5f3320999.zip
add TTL support
The volume TTL and file TTL are not necessarily the same. as long as file TTL is smaller than volume TTL, it'll be fine. volume TTL is used when assigning file id, e.g. http://.../dir/assign?ttl=3h file TTL is used when uploading
Diffstat (limited to 'go/operation/submit.go')
-rw-r--r--go/operation/submit.go11
1 files changed, 6 insertions, 5 deletions
diff --git a/go/operation/submit.go b/go/operation/submit.go
index 9191f7d9a..ec45cc320 100644
--- a/go/operation/submit.go
+++ b/go/operation/submit.go
@@ -20,6 +20,7 @@ type FilePart struct {
ModTime int64 //in seconds
Replication string
Collection string
+ Ttl string
Server string //this comes from assign result
Fid string //this comes from assign result, but customizable
}
@@ -32,12 +33,12 @@ type SubmitResult struct {
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, ttl string, maxMB int) ([]SubmitResult, error) {
results := make([]SubmitResult, len(files))
for index, file := range files {
results[index].FileName = file.FileName
}
- ret, err := Assign(master, len(files), replication, collection)
+ ret, err := Assign(master, len(files), replication, collection, ttl)
if err != nil {
for index, _ := range files {
results[index].Error = err.Error()
@@ -112,7 +113,7 @@ func (fi FilePart) Upload(maxMB int, master string) (retSize uint32, err error)
chunks := fi.FileSize/chunkSize + 1
fids := make([]string, 0)
for i := int64(0); i < chunks; i++ {
- id, count, e := upload_one_chunk(fi.FileName+"-"+strconv.FormatInt(i+1, 10), io.LimitReader(fi.Reader, chunkSize), master, fi.Replication, fi.Collection)
+ id, count, e := upload_one_chunk(fi.FileName+"-"+strconv.FormatInt(i+1, 10), io.LimitReader(fi.Reader, chunkSize), master, fi.Replication, fi.Collection, fi.Ttl)
if e != nil {
return 0, e
}
@@ -130,8 +131,8 @@ func (fi FilePart) Upload(maxMB int, master string) (retSize uint32, err error)
return
}
-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)
+func upload_one_chunk(filename string, reader io.Reader, master, replication string, collection string, ttl string) (fid string, size uint32, e error) {
+ ret, err := Assign(master, 1, replication, collection, ttl)
if err != nil {
return "", 0, err
}