diff options
| author | chrislu <chris.lu@gmail.com> | 2021-12-26 17:28:47 -0800 |
|---|---|---|
| committer | chrislu <chris.lu@gmail.com> | 2021-12-26 17:28:47 -0800 |
| commit | 67b723f74e04b2ea352fb8309ef6161486ff0176 (patch) | |
| tree | 21d009dc98b26d37a176a7cb62cd490abdff219c | |
| parent | 9f9ef1340c6441c10c15e2642b5074d34fe40332 (diff) | |
| download | seaweedfs-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.go | 10 |
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 } |
