Browse Source

add sample for put object with callback

hangzws 7 years ago
parent
commit
cf2e2ecb96
1 changed files with 24 additions and 3 deletions
  1. 24 3
      sample/put_object.go

+ 24 - 3
sample/put_object.go

@@ -2,6 +2,8 @@ package sample
 
 import (
 	"bytes"
+	"encoding/base64"
+	"encoding/json"
 	"fmt"
 	"os"
 	"strings"
@@ -60,18 +62,37 @@ func PutObjectSample() {
 		HandleError(err)
 	}
 
+	props, err := bucket.GetObjectDetailedMeta(objectKey)
+	if err != nil {
+		HandleError(err)
+	}
+	fmt.Println("Object Meta:", props)
+
+	// Case 6: Upload an object with sever side encrpytion kms and kms id specified
 	err = bucket.PutObject(objectKey, strings.NewReader(val), oss.ServerSideEncryption("KMS"), oss.ServerSideEncryptionKeyID(kmsID))
 	if err != nil {
 		HandleError(err)
 	}
 
-	props, err := bucket.GetObjectDetailedMeta(objectKey)
+	// Case 7: Upload an object with callback
+	callbackMap := map[string]string{}
+	callbackMap["callbackUrl"] = "http://oss-demo.aliyuncs.com:23450"
+	callbackMap["callbackHost"] = "oss-cn-hangzhou.aliyuncs.com"
+	callbackMap["callbackBody"] = "filename=${object}&size=${size}&mimeType=${mimeType}"
+	callbackMap["callbackBodyType"] = "application/x-www-form-urlencoded"
+
+	callbackValJSON, err := json.Marshal(callbackMap)
+	if err != nil {
+		HandleError(err)
+	}
+
+	callbackVal := base64.StdEncoding.EncodeToString(callbackValJSON)
+	err = bucket.PutObject(objectKey, strings.NewReader(val), oss.Callback(callbackVal))
 	if err != nil {
 		HandleError(err)
 	}
-	fmt.Println("Object Meta:", props)
 
-	// Case 6: Big file's multipart upload. It supports concurrent upload with resumable upload.
+	// Case 8: Big file's multipart upload. It supports concurrent upload with resumable upload.
 	// multipart upload with 100K as part size. By default 1 coroutine is used and no checkpoint is used.
 	err = bucket.UploadFile(objectKey, localFile, 100*1024)
 	if err != nil {