mirror of
https://github.com/yunionio/cloudpods.git
synced 2026-09-24 16:03:43 +08:00
fix(region): apsara bucket acl (#14601)
This commit is contained in:
@@ -202,6 +202,10 @@ func _jsonRequest(client *sdk.Client, domain string, version string, apiName str
|
||||
id := ""
|
||||
if params != nil {
|
||||
for k, v := range params {
|
||||
if strings.HasPrefix(k, "x-acs-") {
|
||||
req.GetHeaders()[k] = v
|
||||
continue
|
||||
}
|
||||
req.QueryParams[k] = v
|
||||
if strings.ToLower(k) != "regionid" && strings.HasSuffix(k, "Id") {
|
||||
id = v
|
||||
|
||||
@@ -61,18 +61,21 @@ func (self *SBucket) GetOssClient() (*oss.Client, error) {
|
||||
}
|
||||
|
||||
func (b *SBucket) GetAcl() cloudprovider.TBucketACLType {
|
||||
acl := cloudprovider.ACLPrivate
|
||||
osscli, err := b.GetOssClient()
|
||||
if err != nil {
|
||||
log.Errorf("b.region.GetOssClient fail %s", err)
|
||||
return acl
|
||||
acl := b.region.GetBucketAcl(b.Name)
|
||||
return cloudprovider.TBucketACLType(acl)
|
||||
}
|
||||
|
||||
func (self *SRegion) GetBucketAcl(bucket string) string {
|
||||
params := map[string]string{
|
||||
"AccountInfo": "aaa",
|
||||
"x-acs-instanceid": bucket,
|
||||
"Params": jsonutils.Marshal(map[string]string{"BucketName": bucket, "acl": "acl"}).String(),
|
||||
}
|
||||
aclResp, err := osscli.GetBucketACL(b.Name)
|
||||
resp, err := self.ossRequest("GetBucketAcl", params)
|
||||
if err != nil {
|
||||
log.Errorf("osscli.GetBucketACL fail %s", err)
|
||||
return acl
|
||||
return ""
|
||||
}
|
||||
acl = cloudprovider.TBucketACLType(aclResp.ACL)
|
||||
acl, _ := resp.GetString("Data", "AccessControlPolicy", "AccessControlList", "Grant")
|
||||
return acl
|
||||
}
|
||||
|
||||
|
||||
@@ -1046,23 +1046,17 @@ func (self *SRegion) DeleteIBucket(name string) error {
|
||||
}
|
||||
|
||||
func (self *SRegion) GetBucket(name string) (*SBucket, error) {
|
||||
cli, err := self.GetOssClient()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
params := map[string]string{
|
||||
"AccountInfo": "aaa",
|
||||
"x-acs-instanceid": name,
|
||||
"Params": jsonutils.Marshal(map[string]string{"BucketName": name}).String(),
|
||||
}
|
||||
bucket, err := cli.GetBucketInfo(name)
|
||||
resp, err := self.ossRequest("GetBucketInfo", params)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return nil, errors.Wrapf(err, "GetBucketInfo")
|
||||
}
|
||||
|
||||
bInfo := bucket.BucketInfo
|
||||
return &SBucket{
|
||||
region: self,
|
||||
Name: bInfo.Name,
|
||||
Location: bInfo.Location,
|
||||
CreationDate: bInfo.CreationDate,
|
||||
StorageClass: bInfo.StorageClass,
|
||||
}, nil
|
||||
bucket := &SBucket{region: self}
|
||||
return bucket, resp.Unmarshal(bucket, "Data", "BucketInfo", "Bucket")
|
||||
}
|
||||
|
||||
func (self *SRegion) IBucketExist(name string) (bool, error) {
|
||||
|
||||
Reference in New Issue
Block a user