diff options
| author | chrislu <chris.lu@gmail.com> | 2024-03-19 08:58:09 -0700 |
|---|---|---|
| committer | chrislu <chris.lu@gmail.com> | 2024-03-19 08:58:09 -0700 |
| commit | ad408a7d381378ecc9ee3cb35a4b494cd8b8166a (patch) | |
| tree | 6891d05d3fba517e885a1bacbee23d9f2c4934ef /weed | |
| parent | 516cba705306bb7d137f4be902f38087c1a56133 (diff) | |
| parent | 359b00596f70f508060cb88f9ac7ab1d3f0e8331 (diff) | |
| download | seaweedfs-ad408a7d381378ecc9ee3cb35a4b494cd8b8166a.tar.xz seaweedfs-ad408a7d381378ecc9ee3cb35a4b494cd8b8166a.zip | |
Merge branch 'master' into mq-subscribe
Diffstat (limited to 'weed')
| -rw-r--r-- | weed/server/filer_server_handlers_read.go | 12 | ||||
| -rw-r--r-- | weed/server/filer_server_handlers_read_dir.go | 5 | ||||
| -rw-r--r-- | weed/storage/backend/rclone_backend/rclone_backend.go | 2 |
3 files changed, 12 insertions, 7 deletions
diff --git a/weed/server/filer_server_handlers_read.go b/weed/server/filer_server_handlers_read.go index 0f4037237..c139060e4 100644 --- a/weed/server/filer_server_handlers_read.go +++ b/weed/server/filer_server_handlers_read.go @@ -3,6 +3,7 @@ package weed_server import ( "bytes" "context" + "errors" "fmt" "io" "math" @@ -117,9 +118,12 @@ func (fs *FilerServer) GetOrHeadHandler(w http.ResponseWriter, r *http.Request) w.WriteHeader(http.StatusForbidden) return } - if query.Get("metadata") == "true" && fs.option.ExposeDirectoryData != false { - writeJsonQuiet(w, r, http.StatusOK, entry) - return + if query.Get("metadata") == "true" { + // Don't return directory meta if config value is set to true + if fs.option.ExposeDirectoryData == false { + writeJsonError(w, r, http.StatusForbidden, errors.New("directory listing is disabled")) + return + } } if entry.Attr.Mime == "" || (entry.Attr.Mime == s3_constants.FolderMimeType && r.Header.Get(s3_constants.AmzIdentityId) == "") { // return index of directory for non s3 gateway @@ -135,7 +139,7 @@ func (fs *FilerServer) GetOrHeadHandler(w http.ResponseWriter, r *http.Request) return } - if query.Get("metadata") == "true" && fs.option.ExposeDirectoryData != false { + if query.Get("metadata") == "true" { if query.Get("resolveManifest") == "true" { if entry.Chunks, _, err = filer.ResolveChunkManifest( fs.filer.MasterClient.GetLookupFileIdFunction(), diff --git a/weed/server/filer_server_handlers_read_dir.go b/weed/server/filer_server_handlers_read_dir.go index be38fba1d..0531527bb 100644 --- a/weed/server/filer_server_handlers_read_dir.go +++ b/weed/server/filer_server_handlers_read_dir.go @@ -2,6 +2,7 @@ package weed_server import ( "context" + "errors" "net/http" "strconv" "strings" @@ -12,14 +13,14 @@ import ( "github.com/seaweedfs/seaweedfs/weed/util" ) -// listDirectoryHandler lists directories and folers under a directory +// listDirectoryHandler lists directories and folders under a directory // files are sorted by name and paginated via "lastFileName" and "limit". // sub directories are listed on the first page, when "lastFileName" // is empty. func (fs *FilerServer) listDirectoryHandler(w http.ResponseWriter, r *http.Request) { if fs.option.ExposeDirectoryData == false { - http.NotFound(w, r) + writeJsonError(w, r, http.StatusForbidden, errors.New("ui is disabled")) return } diff --git a/weed/storage/backend/rclone_backend/rclone_backend.go b/weed/storage/backend/rclone_backend/rclone_backend.go index c634db048..2120d549a 100644 --- a/weed/storage/backend/rclone_backend/rclone_backend.go +++ b/weed/storage/backend/rclone_backend/rclone_backend.go @@ -150,7 +150,7 @@ func uploadViaRclone(rfs fs.Fs, filename string, key string, fn func(progressed info := object.NewStaticObjectInfo(key, stat.ModTime(), stat.Size(), true, nil, rfs) - tr := accounting.NewStats(ctx).NewTransfer(info) + tr := accounting.NewStats(ctx).NewTransfer(info, rfs) defer tr.Done(ctx, err) acc := tr.Account(ctx, file) pr := ProgressReader{acc: acc, tr: tr, fn: fn} |
