aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorchrislu <chris.lu@gmail.com>2025-11-21 15:13:52 -0800
committerchrislu <chris.lu@gmail.com>2025-11-21 15:13:52 -0800
commit03c96495839cb6995090e35812e52c6ceb018d68 (patch)
tree62b12b586de1b354fc1b291c459cb07a478c2b78
parent99a9a677417f1a41a055d82d3c499afa48b01c62 (diff)
downloadseaweedfs-03c96495839cb6995090e35812e52c6ceb018d68.tar.xz
seaweedfs-03c96495839cb6995090e35812e52c6ceb018d68.zip
read inside filer
-rw-r--r--weed/credential/filer_etc/filer_etc_identity.go12
-rw-r--r--weed/credential/filer_etc/filer_etc_policy.go12
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
})