aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchrislu <chris.lu@gmail.com>2021-12-26 17:28:47 -0800
committerchrislu <chris.lu@gmail.com>2021-12-26 17:28:47 -0800
commit67b723f74e04b2ea352fb8309ef6161486ff0176 (patch)
tree21d009dc98b26d37a176a7cb62cd490abdff219c
parent9f9ef1340c6441c10c15e2642b5074d34fe40332 (diff)
downloadseaweedfs-67b723f74e04b2ea352fb8309ef6161486ff0176.tar.xz
seaweedfs-67b723f74e04b2ea352fb8309ef6161486ff0176.zip
Filer Server API support fsync
fix https://github.com/chrislusf/seaweedfs/issues/2528
-rw-r--r--weed/server/filer_server_handlers_write.go10
1 files changed, 8 insertions, 2 deletions
diff --git a/weed/server/filer_server_handlers_write.go b/weed/server/filer_server_handlers_write.go
index 870ce44e6..1ebe66d43 100644
--- a/weed/server/filer_server_handlers_write.go
+++ b/weed/server/filer_server_handlers_write.go
@@ -63,6 +63,7 @@ func (fs *FilerServer) PostHandler(w http.ResponseWriter, r *http.Request, conte
query.Get("replication"),
query.Get("ttl"),
query.Get("disk"),
+ query.Get("fsync"),
query.Get("dataCenter"),
query.Get("rack"),
query.Get("dataNode"),
@@ -152,12 +153,17 @@ func (fs *FilerServer) detectStorageOption(requestURI, qCollection, qReplication
}, nil
}
-func (fs *FilerServer) detectStorageOption0(requestURI, qCollection, qReplication string, qTtl string, diskType string, dataCenter, rack, dataNode string) (*operation.StorageOption, error) {
+func (fs *FilerServer) detectStorageOption0(requestURI, qCollection, qReplication string, qTtl string, diskType string, fsync string, dataCenter, rack, dataNode string) (*operation.StorageOption, error) {
ttl, err := needle.ReadTTL(qTtl)
if err != nil {
glog.Errorf("fail to parse ttl %s: %v", qTtl, err)
}
- return fs.detectStorageOption(requestURI, qCollection, qReplication, int32(ttl.Minutes())*60, diskType, dataCenter, rack, dataNode)
+ so, err := fs.detectStorageOption(requestURI, qCollection, qReplication, int32(ttl.Minutes())*60, diskType, dataCenter, rack, dataNode)
+ if so != nil {
+ so.Fsync = fsync == "true"
+ }
+
+ return so, err
}