aboutsummaryrefslogtreecommitdiff
path: root/weed/s3api
diff options
context:
space:
mode:
authorChris Lu <chris.lu@gmail.com>2020-12-10 00:15:22 -0800
committerChris Lu <chris.lu@gmail.com>2020-12-10 00:15:22 -0800
commit765b3ef1beae5418491e338d397a589186ca4458 (patch)
tree3e2a9b6a3a587a8801e08a3a10786cae8b6653e8 /weed/s3api
parent97c942b5eefcd01428fc663ff2a2ec1be68812db (diff)
downloadseaweedfs-765b3ef1beae5418491e338d397a589186ca4458.tar.xz
seaweedfs-765b3ef1beae5418491e338d397a589186ca4458.zip
save /etc/iam/identity.json inside filer store
Diffstat (limited to 'weed/s3api')
-rw-r--r--weed/s3api/auth_credentials.go23
-rw-r--r--weed/s3api/auth_credentials_subscribe.go3
2 files changed, 11 insertions, 15 deletions
diff --git a/weed/s3api/auth_credentials.go b/weed/s3api/auth_credentials.go
index 83f5269b7..c2ffefedc 100644
--- a/weed/s3api/auth_credentials.go
+++ b/weed/s3api/auth_credentials.go
@@ -50,33 +50,27 @@ func NewIdentityAccessManagement(option *S3ApiServerOption) *IdentityAccessManag
}
func (iam *IdentityAccessManagement) loadS3ApiConfigurationFromFiler(option *S3ApiServerOption) error {
- s3ApiConfiguration := &iam_pb.S3ApiConfiguration{}
content, err := filer.ReadContent(option.Filer, filer.IamConfigDirecotry, filer.IamIdentityFile)
if err != nil {
return fmt.Errorf("read S3 config: %v", err)
}
- if err = filer.ParseS3ConfigurationFromBytes(content, s3ApiConfiguration); err != nil {
- return fmt.Errorf("parse S3 config: %v", err)
- }
- if err := iam.loadS3ApiConfiguration(s3ApiConfiguration); err != nil {
- return fmt.Errorf("laod S3 config: %v", err)
- }
- glog.V(0).Infof("loaded %d s3 identities", len(iam.identities))
- return nil
+ return iam.loadS3ApiConfigurationFromBytes(content)
}
func (iam *IdentityAccessManagement) loadS3ApiConfigurationFromFile(fileName string) error {
- s3ApiConfiguration := &iam_pb.S3ApiConfiguration{}
- rawData, readErr := ioutil.ReadFile(fileName)
+ content, readErr := ioutil.ReadFile(fileName)
if readErr != nil {
glog.Warningf("fail to read %s : %v", fileName, readErr)
return fmt.Errorf("fail to read %s : %v", fileName, readErr)
}
+ return iam.loadS3ApiConfigurationFromBytes(content)
+}
- glog.V(1).Infof("load s3 config: %v", fileName)
- if err := filer.ParseS3ConfigurationFromBytes(rawData, s3ApiConfiguration); err != nil {
+func (iam *IdentityAccessManagement) loadS3ApiConfigurationFromBytes(content []byte) error {
+ s3ApiConfiguration := &iam_pb.S3ApiConfiguration{}
+ if err := filer.ParseS3ConfigurationFromBytes(content, s3ApiConfiguration); err != nil {
glog.Warningf("unmarshal error: %v", err)
- return fmt.Errorf("unmarshal %s error: %v", fileName, err)
+ return fmt.Errorf("unmarshal error: %v", err)
}
if err := iam.loadS3ApiConfiguration(s3ApiConfiguration); err != nil {
return err
@@ -84,6 +78,7 @@ func (iam *IdentityAccessManagement) loadS3ApiConfigurationFromFile(fileName str
return nil
}
+
func (iam *IdentityAccessManagement) loadS3ApiConfiguration(config *iam_pb.S3ApiConfiguration) error {
var identities []*Identity
for _, ident := range config.Identities {
diff --git a/weed/s3api/auth_credentials_subscribe.go b/weed/s3api/auth_credentials_subscribe.go
index f541628bb..ea4b69550 100644
--- a/weed/s3api/auth_credentials_subscribe.go
+++ b/weed/s3api/auth_credentials_subscribe.go
@@ -25,9 +25,10 @@ func (s3a *S3ApiServer) subscribeMetaEvents(clientName string, prefix string, la
dir = message.NewParentPath
}
if dir == filer.IamConfigDirecotry && message.NewEntry.Name == filer.IamIdentityFile {
- if err := s3a.iam.loadS3ApiConfigurationFromFiler(s3a.option); err != nil {
+ if err := s3a.iam.loadS3ApiConfigurationFromBytes(message.NewEntry.Content); err != nil {
return err
}
+ glog.V(0).Infof("updated %s/%s", filer.IamConfigDirecotry, filer.IamIdentityFile)
}
return nil