aboutsummaryrefslogtreecommitdiff
path: root/weed/server
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2021-08-14 02:54:13 -0700
committerChris Lu <chris.lu@gmail.com>2021-08-14 02:54:13 -0700
commit7937db52e1a6b8be0e04da0b2ed9d62284fa2698 (patch)
tree36d64b2d8ae05bb9955ae0570fdcb7af3eca8b44 /weed/server
parent0c66b173a4b50dd4589fa16a521d52060cbe5c16 (diff)
downloadseaweedfs-7937db52e1a6b8be0e04da0b2ed9d62284fa2698.tar.xz
seaweedfs-7937db52e1a6b8be0e04da0b2ed9d62284fa2698.zip
Filer locationPrefix configure does not exec replication #2257
fix https://github.com/chrislusf/seaweedfs/issues/2257
Diffstat (limited to 'weed/server')
-rw-r--r--weed/server/filer_server_handlers_write.go23
1 files changed, 9 insertions, 14 deletions
diff --git a/weed/server/filer_server_handlers_write.go b/weed/server/filer_server_handlers_write.go
index 8d11e664a..39d983ab7 100644
--- a/weed/server/filer_server_handlers_write.go
+++ b/weed/server/filer_server_handlers_write.go
@@ -116,18 +116,6 @@ func (fs *FilerServer) DeleteHandler(w http.ResponseWriter, r *http.Request) {
}
func (fs *FilerServer) detectStorageOption(requestURI, qCollection, qReplication string, ttlSeconds int32, diskType, dataCenter, rack string) (*operation.StorageOption, error) {
- collection := util.Nvl(qCollection, fs.option.Collection)
- replication := util.Nvl(qReplication, fs.option.DefaultReplication)
-
- // required by buckets folder
- bucketDefaultReplication, fsync := "", false
- if strings.HasPrefix(requestURI, fs.filer.DirBucketsPath+"/") {
- collection = fs.filer.DetectBucket(util.FullPath(requestURI))
- bucketDefaultReplication, fsync = fs.filer.ReadBucketOption(collection)
- }
- if replication == "" {
- replication = bucketDefaultReplication
- }
rule := fs.filer.FilerConf.MatchStorageRule(requestURI)
@@ -135,6 +123,13 @@ func (fs *FilerServer) detectStorageOption(requestURI, qCollection, qReplication
return nil, ErrReadOnly
}
+ // required by buckets folder
+ bucketDefaultCollection, bucketDefaultReplication, fsync := "", "", false
+ if strings.HasPrefix(requestURI, fs.filer.DirBucketsPath+"/") {
+ bucketDefaultCollection = fs.filer.DetectBucket(util.FullPath(requestURI))
+ bucketDefaultReplication, fsync = fs.filer.ReadBucketOption(bucketDefaultCollection)
+ }
+
if ttlSeconds == 0 {
ttl, err := needle.ReadTTL(rule.GetTtl())
if err != nil {
@@ -144,8 +139,8 @@ func (fs *FilerServer) detectStorageOption(requestURI, qCollection, qReplication
}
return &operation.StorageOption{
- Replication: util.Nvl(replication, rule.Replication),
- Collection: util.Nvl(collection, rule.Collection),
+ Replication: util.Nvl(qReplication, rule.Replication, bucketDefaultReplication, fs.option.DefaultReplication),
+ Collection: util.Nvl(qCollection, rule.Collection, bucketDefaultCollection, fs.option.Collection),
DataCenter: util.Nvl(dataCenter, fs.option.DataCenter),
Rack: util.Nvl(rack, fs.option.Rack),
TtlSeconds: ttlSeconds,