|
|
package cos
import ( "context" "encoding/xml" "net/http" )
// ReplicationDestination is the sub struct of BucketReplicationRule
type ReplicationDestination struct { Bucket string `xml:"Bucket"` StorageClass string `xml:"StorageClass,omitempty"` }
// BucketReplicationRule is the main param of replication
type BucketReplicationRule struct { ID string `xml:"ID,omitempty"` Status string `xml:"Status"` Prefix string `xml:"Prefix"` Destination *ReplicationDestination `xml:"Destination"` }
// PutBucketReplicationOptions is the options of PutBucketReplication
type PutBucketReplicationOptions struct { XMLName xml.Name `xml:"ReplicationConfiguration"` Role string `xml:"Role"` Rule []BucketReplicationRule `xml:"Rule"` }
// GetBucketReplicationResult is the result of GetBucketReplication
type GetBucketReplicationResult PutBucketReplicationOptions
// PutBucketReplication https://cloud.tencent.com/document/product/436/19223
func (s *BucketService) PutBucketReplication(ctx context.Context, opt *PutBucketReplicationOptions) (*Response, error) { sendOpt := sendOptions{ baseURL: s.client.BaseURL.BucketURL, uri: "/?replication", method: http.MethodPut, body: opt, } resp, err := s.client.doRetry(ctx, &sendOpt) return resp, err
}
// GetBucketReplication https://cloud.tencent.com/document/product/436/19222
func (s *BucketService) GetBucketReplication(ctx context.Context) (*GetBucketReplicationResult, *Response, error) { var res GetBucketReplicationResult sendOpt := sendOptions{ baseURL: s.client.BaseURL.BucketURL, uri: "/?replication", method: http.MethodGet, result: &res, } resp, err := s.client.doRetry(ctx, &sendOpt) return &res, resp, err
}
// DeleteBucketReplication https://cloud.tencent.com/document/product/436/19221
func (s *BucketService) DeleteBucketReplication(ctx context.Context) (*Response, error) { sendOpt := sendOptions{ baseURL: s.client.BaseURL.BucketURL, uri: "/?replication", method: http.MethodDelete, } resp, err := s.client.doRetry(ctx, &sendOpt) return resp, err }
|