committed by
							
								 GitHub
								GitHub
							
						
					
				
				
				  
				  No known key found for this signature in database
				  
				  	
						GPG Key ID: 4AEE18F83AFDEB23
				  	
				  
				
			
		
		
		
	
				 3 changed files with 105 additions and 3 deletions
			
			
		- 
					24ci.go
- 
					14error.go
- 
					70example/object/ci_put.go
| @ -0,0 +1,24 @@ | |||||
|  | package cos | ||||
|  | 
 | ||||
|  | import ( | ||||
|  | 	"encoding/json" | ||||
|  | ) | ||||
|  | 
 | ||||
|  | type PicOperations struct { | ||||
|  | 	IsPicInfo int                  `json:"is_pic_info,omitempty"` | ||||
|  | 	Rules     []PicOperationsRules `json:"rules,omitemtpy"` | ||||
|  | } | ||||
|  | 
 | ||||
|  | type PicOperationsRules struct { | ||||
|  | 	Bucket string `json:"bucket,omitempty"` | ||||
|  | 	FileId string `json:"fileid"` | ||||
|  | 	Rule   string `json:"rule"` | ||||
|  | } | ||||
|  | 
 | ||||
|  | func EncodePicOperations(pic *PicOperations) string { | ||||
|  | 	bs, err := json.Marshal(pic) | ||||
|  | 	if err != nil { | ||||
|  | 		return "" | ||||
|  | 	} | ||||
|  | 	return string(bs) | ||||
|  | } | ||||
| @ -0,0 +1,70 @@ | |||||
|  | package main | ||||
|  | 
 | ||||
|  | import ( | ||||
|  | 	"context" | ||||
|  | 	"fmt" | ||||
|  | 	"net/http" | ||||
|  | 	"net/url" | ||||
|  | 	"os" | ||||
|  | 
 | ||||
|  | 	"github.com/tencentyun/cos-go-sdk-v5" | ||||
|  | 	"github.com/tencentyun/cos-go-sdk-v5/debug" | ||||
|  | ) | ||||
|  | 
 | ||||
|  | func log_status(err error) { | ||||
|  | 	if err == nil { | ||||
|  | 		return | ||||
|  | 	} | ||||
|  | 	if cos.IsNotFoundError(err) { | ||||
|  | 		// WARN
 | ||||
|  | 		fmt.Println("Resource is not existed") | ||||
|  | 	} else if e, ok := cos.IsCOSError(err); ok { | ||||
|  | 		fmt.Printf("Code: %v\n", e.Code) | ||||
|  | 		fmt.Printf("Message: %v\n", e.Message) | ||||
|  | 		fmt.Printf("Resource: %v\n", e.Resource) | ||||
|  | 		fmt.Printf("RequestId: %v\n", e.RequestID) | ||||
|  | 		// ERROR
 | ||||
|  | 	} else { | ||||
|  | 		fmt.Println(err) | ||||
|  | 		// ERROR
 | ||||
|  | 	} | ||||
|  | } | ||||
|  | 
 | ||||
|  | func main() { | ||||
|  | 	u, _ := url.Parse("https://test-1259654469.cos.ap-guangzhou.myqcloud.com") | ||||
|  | 	b := &cos.BaseURL{BucketURL: u} | ||||
|  | 	c := cos.NewClient(b, &http.Client{ | ||||
|  | 		Transport: &cos.AuthorizationTransport{ | ||||
|  | 			SecretID:  os.Getenv("COS_SECRETID"), | ||||
|  | 			SecretKey: os.Getenv("COS_SECRETKEY"), | ||||
|  | 			Transport: &debug.DebugRequestTransport{ | ||||
|  | 				RequestHeader: true, | ||||
|  | 				// Notice when put a large file and set need the request body, might happend out of memory error.
 | ||||
|  | 				RequestBody:    false, | ||||
|  | 				ResponseHeader: true, | ||||
|  | 				ResponseBody:   true, | ||||
|  | 			}, | ||||
|  | 		}, | ||||
|  | 	}) | ||||
|  | 
 | ||||
|  | 	opt := &cos.ObjectPutOptions{ | ||||
|  | 		nil, | ||||
|  | 		&cos.ObjectPutHeaderOptions{ | ||||
|  | 			XOptionHeader: &http.Header{}, | ||||
|  | 		}, | ||||
|  | 	} | ||||
|  | 	pic := &cos.PicOperations{ | ||||
|  | 		IsPicInfo: 1, | ||||
|  | 		Rules: []cos.PicOperationsRules{ | ||||
|  | 			{ | ||||
|  | 				FileId: "format.jpg", | ||||
|  | 				Rule:   "imageView2/format/png", | ||||
|  | 			}, | ||||
|  | 		}, | ||||
|  | 	} | ||||
|  | 	opt.XOptionHeader.Add("Pic-Operations", cos.EncodePicOperations(pic)) | ||||
|  | 	name := "test.jpg" | ||||
|  | 	local_filename := "./test.jpg" | ||||
|  | 	_, err := c.Object.PutFromFile(context.Background(), name, local_filename, opt) | ||||
|  | 	log_status(err) | ||||
|  | } | ||||
						Write
						Preview
					
					
					Loading…
					
					Cancel
						Save
					
		Reference in new issue