You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							69 lines
						
					
					
						
							1.9 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							69 lines
						
					
					
						
							1.9 KiB
						
					
					
				
								package cos
							 | 
						|
								
							 | 
						|
								import (
							 | 
						|
									"context"
							 | 
						|
									"encoding/xml"
							 | 
						|
									"net/http"
							 | 
						|
								)
							 | 
						|
								
							 | 
						|
								// BucketTaggingTag is the tag of BucketTagging
							 | 
						|
								type BucketTaggingTag struct {
							 | 
						|
									Key   string
							 | 
						|
									Value string
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								// BucketGetTaggingResult is the result of BucketGetTagging
							 | 
						|
								type BucketGetTaggingResult struct {
							 | 
						|
									XMLName xml.Name           `xml:"Tagging"`
							 | 
						|
									TagSet  []BucketTaggingTag `xml:"TagSet>Tag,omitempty"`
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								// GetTagging 接口实现获取指定Bucket的标签。
							 | 
						|
								//
							 | 
						|
								// https://www.qcloud.com/document/product/436/8277
							 | 
						|
								func (s *BucketService) GetTagging(ctx context.Context) (*BucketGetTaggingResult, *Response, error) {
							 | 
						|
									var res BucketGetTaggingResult
							 | 
						|
									sendOpt := sendOptions{
							 | 
						|
										baseURL: s.client.BaseURL.BucketURL,
							 | 
						|
										uri:     "/?tagging",
							 | 
						|
										method:  http.MethodGet,
							 | 
						|
										result:  &res,
							 | 
						|
									}
							 | 
						|
									resp, err := s.client.doRetry(ctx, &sendOpt)
							 | 
						|
									return &res, resp, err
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								// BucketPutTaggingOptions is the option of BucketPutTagging
							 | 
						|
								type BucketPutTaggingOptions struct {
							 | 
						|
									XMLName xml.Name           `xml:"Tagging"`
							 | 
						|
									TagSet  []BucketTaggingTag `xml:"TagSet>Tag,omitempty"`
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								// PutTagging 接口实现给用指定Bucket打标签。用来组织和管理相关Bucket。
							 | 
						|
								//
							 | 
						|
								// 当该请求设置相同Key名称,不同Value时,会返回400。请求成功,则返回204。
							 | 
						|
								//
							 | 
						|
								// https://www.qcloud.com/document/product/436/8281
							 | 
						|
								func (s *BucketService) PutTagging(ctx context.Context, opt *BucketPutTaggingOptions) (*Response, error) {
							 | 
						|
									sendOpt := sendOptions{
							 | 
						|
										baseURL: s.client.BaseURL.BucketURL,
							 | 
						|
										uri:     "/?tagging",
							 | 
						|
										method:  http.MethodPut,
							 | 
						|
										body:    opt,
							 | 
						|
									}
							 | 
						|
									resp, err := s.client.doRetry(ctx, &sendOpt)
							 | 
						|
									return resp, err
							 | 
						|
								}
							 | 
						|
								
							 | 
						|
								// DeleteTagging 接口实现删除指定Bucket的标签。
							 | 
						|
								//
							 | 
						|
								// https://www.qcloud.com/document/product/436/8286
							 | 
						|
								func (s *BucketService) DeleteTagging(ctx context.Context) (*Response, error) {
							 | 
						|
									sendOpt := sendOptions{
							 | 
						|
										baseURL: s.client.BaseURL.BucketURL,
							 | 
						|
										uri:     "/?tagging",
							 | 
						|
										method:  http.MethodDelete,
							 | 
						|
									}
							 | 
						|
									resp, err := s.client.doRetry(ctx, &sendOpt)
							 | 
						|
									return resp, err
							 | 
						|
								}
							 |