diff options
| author | chrislu <chris.lu@gmail.com> | 2025-11-21 15:13:52 -0800 |
|---|---|---|
| committer | chrislu <chris.lu@gmail.com> | 2025-11-21 15:13:52 -0800 |
| commit | 03c96495839cb6995090e35812e52c6ceb018d68 (patch) | |
| tree | 62b12b586de1b354fc1b291c459cb07a478c2b78 | |
| parent | 99a9a677417f1a41a055d82d3c499afa48b01c62 (diff) | |
| download | seaweedfs-03c96495839cb6995090e35812e52c6ceb018d68.tar.xz seaweedfs-03c96495839cb6995090e35812e52c6ceb018d68.zip | |
read inside filer
| -rw-r--r-- | weed/credential/filer_etc/filer_etc_identity.go | 12 | ||||
| -rw-r--r-- | weed/credential/filer_etc/filer_etc_policy.go | 12 |
2 files changed, 15 insertions, 9 deletions
diff --git a/weed/credential/filer_etc/filer_etc_identity.go b/weed/credential/filer_etc/filer_etc_identity.go index f57c7c3ac..aa9417577 100644 --- a/weed/credential/filer_etc/filer_etc_identity.go +++ b/weed/credential/filer_etc/filer_etc_identity.go @@ -15,14 +15,18 @@ func (store *FilerEtcStore) LoadConfiguration(ctx context.Context) (*iam_pb.S3Ap s3cfg := &iam_pb.S3ApiConfiguration{} err := store.withFilerClient(func(client filer_pb.SeaweedFilerClient) error { - var buf bytes.Buffer - if err := filer.ReadEntry(nil, client, filer.IamConfigDirectory, filer.IamIdentityFile, &buf); err != nil { + // Use ReadInsideFiler instead of ReadEntry since identity.json is small + // and stored inline. ReadEntry requires a master client for chunked files, + // but ReadInsideFiler only reads inline content. + content, err := filer.ReadInsideFiler(client, filer.IamConfigDirectory, filer.IamIdentityFile) + if err != nil { if err != filer_pb.ErrNotFound { return err } + return nil } - if buf.Len() > 0 { - return filer.ParseS3ConfigurationFromBytes(buf.Bytes(), s3cfg) + if len(content) > 0 { + return filer.ParseS3ConfigurationFromBytes(content, s3cfg) } return nil }) diff --git a/weed/credential/filer_etc/filer_etc_policy.go b/weed/credential/filer_etc/filer_etc_policy.go index 8b4647cb1..31ac5b078 100644 --- a/weed/credential/filer_etc/filer_etc_policy.go +++ b/weed/credential/filer_etc/filer_etc_policy.go @@ -1,7 +1,6 @@ package filer_etc import ( - "bytes" "context" "encoding/json" @@ -29,8 +28,11 @@ func (store *FilerEtcStore) GetPolicies(ctx context.Context) (map[string]policy_ } err := store.withFilerClient(func(client filer_pb.SeaweedFilerClient) error { - var buf bytes.Buffer - if err := filer.ReadEntry(nil, client, filer.IamConfigDirectory, filer.IamPoliciesFile, &buf); err != nil { + // Use ReadInsideFiler instead of ReadEntry since policies.json is small + // and stored inline. ReadEntry requires a master client for chunked files, + // but ReadInsideFiler only reads inline content. + content, err := filer.ReadInsideFiler(client, filer.IamConfigDirectory, filer.IamPoliciesFile) + if err != nil { if err == filer_pb.ErrNotFound { glog.V(1).Infof("Policies file not found at %s/%s, returning empty policies", filer.IamConfigDirectory, filer.IamPoliciesFile) // If file doesn't exist, return empty collection @@ -39,8 +41,8 @@ func (store *FilerEtcStore) GetPolicies(ctx context.Context) (map[string]policy_ return err } - if buf.Len() > 0 { - return json.Unmarshal(buf.Bytes(), policiesCollection) + if len(content) > 0 { + return json.Unmarshal(content, policiesCollection) } return nil }) |
