aboutsummaryrefslogtreecommitdiff
path: root/weed
diff options
context:
space:
mode:
authorchrislu <chris.lu@gmail.com>2024-03-19 08:58:09 -0700
committerchrislu <chris.lu@gmail.com>2024-03-19 08:58:09 -0700
commitad408a7d381378ecc9ee3cb35a4b494cd8b8166a (patch)
tree6891d05d3fba517e885a1bacbee23d9f2c4934ef /weed
parent516cba705306bb7d137f4be902f38087c1a56133 (diff)
parent359b00596f70f508060cb88f9ac7ab1d3f0e8331 (diff)
downloadseaweedfs-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.go12
-rw-r--r--weed/server/filer_server_handlers_read_dir.go5
-rw-r--r--weed/storage/backend/rclone_backend/rclone_backend.go2
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}