|
|
package main
import ( "context" "fmt" "io" "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("WARN: Resource is not existed") } else if e, ok := cos.IsCOSError(err); ok { fmt.Printf("ERROR: Code: %v\n", e.Code) fmt.Printf("ERROR: Message: %v\n", e.Message) fmt.Printf("ERROR: Resource: %v\n", e.Resource) fmt.Printf("ERROR: RequestId: %v\n", e.RequestID) // ERROR
} else { fmt.Printf("ERROR: %v\n", err) // ERROR
} }
func main() { u, _ := url.Parse("https://test-1259654469.cos.ap-guangzhou.myqcloud.com") cu, _ := url.Parse("https://test-1259654469.ci.ap-guangzhou.myqcloud.com") b := &cos.BaseURL{BucketURL: u, CIURL: cu} 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: true, ResponseHeader: true, ResponseBody: true, }, }, })
// 1、UpdateDocProcessQueue
updateQueueOpt := &cos.UpdateDocProcessQueueOptions{ Name: "queue-doc-process-1", QueueID: "p111a8dd208104ce3b11c78398f658ca8", State: "Active", NotifyConfig: &cos.DocProcessQueueNotifyConfig{ State: "Off", }, } updateQueueRes, _, err := c.CI.UpdateDocProcessQueue(context.Background(), updateQueueOpt) log_status(err) fmt.Printf("%+v\n", updateQueueRes)
// 2、DescribeDocProcessQueues
DescribeQueueOpt := &cos.DescribeDocProcessQueuesOptions{ QueueIds: "p111a8dd208104ce3b11c78398f658ca8,p4318f85d2aa14c43b1dba6f9b78be9b3,aacb2bb066e9c4478834d4196e76c49d3", PageNumber: 1, PageSize: 2, } DescribeQueueRes, _, err := c.CI.DescribeDocProcessQueues(context.Background(), DescribeQueueOpt) log_status(err) fmt.Printf("%+v\n", DescribeQueueRes)
// 3、DescribeDocProcessBuckets
BucketsOpt := &cos.DescribeDocProcessBucketsOptions{ Regions: "All", } BucketsRes, _, err := c.CI.DescribeDocProcessBuckets(context.Background(), BucketsOpt) log_status(err) fmt.Printf("%+v\n", BucketsRes)
// 4、CreateDocProcessJobs
createJobOpt := &cos.CreateDocProcessJobsOptions{ Tag: "DocProcess", Input: &cos.DocProcessJobInput{ Object: "form.pdf", }, Operation: &cos.DocProcessJobOperation{ Output: &cos.DocProcessJobOutput{ Region: "ap-guangzhou", Object: "test-doc${Number}", Bucket: "test-1259654469", }, DocProcess: &cos.DocProcessJobDocProcess{ TgtType: "png", StartPage: 1, EndPage: -1, ImageParams: "watermark/1/image/aHR0cDovL3Rlc3QwMDUtMTI1MTcwNDcwOC5jb3MuYXAtY2hvbmdxaW5nLm15cWNsb3VkLmNvbS8xLmpwZw==/gravity/southeast", }, }, QueueId: "p111a8dd208104ce3b11c78398f658ca8", } createJobRes, _, err := c.CI.CreateDocProcessJobs(context.Background(), createJobOpt) log_status(err) fmt.Printf("%+v\n", createJobRes.JobsDetail)
// 5、DescribeDocProcessJob
DescribeJobRes, _, err := c.CI.DescribeDocProcessJob(context.Background(), createJobRes.JobsDetail.JobId) log_status(err) fmt.Printf("%+v\n", DescribeJobRes.JobsDetail)
// 6、DescribeDocProcessJobs
DescribeJobsOpt := &cos.DescribeDocProcessJobsOptions{ QueueId: "p111a8dd208104ce3b11c78398f658ca8", Tag: "DocProcess", } DescribeJobsRes, _, err := c.CI.DescribeDocProcessJobs(context.Background(), DescribeJobsOpt) log_status(err) fmt.Printf("%+v\n", DescribeJobsRes)
// 7、doc-preview
opt := &cos.DocPreviewOptions{ Page: 1, } resp, err := c.CI.DocPreview(context.Background(), "form.pdf", opt) log_status(err) fd, _ := os.OpenFile("form.pdf", os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0660) io.Copy(fd, resp.Body) fd.Close()
}
|