github.com/aliyun/aliyun-oss-go-sdk@v3.0.2+incompatible/sample/sign_url.go (about)

     1  package sample
     2  
     3  import (
     4  	"fmt"
     5  	"io/ioutil"
     6  	"os"
     7  	"strings"
     8  
     9  	"github.com/aliyun/aliyun-oss-go-sdk/oss"
    10  )
    11  
    12  // SignURLSample signs URL sample
    13  func SignURLSample() {
    14  	// Create bucket
    15  	bucket, err := GetTestBucket(bucketName)
    16  	if err != nil {
    17  		HandleError(err)
    18  	}
    19  
    20  	// Put object
    21  	signedURL, err := bucket.SignURL(objectKey, oss.HTTPPut, 60)
    22  	if err != nil {
    23  		HandleError(err)
    24  	}
    25  
    26  	var val = "花间一壶酒,独酌无相亲。 举杯邀明月,对影成三人。"
    27  	err = bucket.PutObjectWithURL(signedURL, strings.NewReader(val))
    28  	if err != nil {
    29  		HandleError(err)
    30  	}
    31  
    32  	// Put object with option
    33  	options := []oss.Option{
    34  		oss.Meta("myprop", "mypropval"),
    35  		oss.ContentType("image/tiff"),
    36  	}
    37  
    38  	signedURL, err = bucket.SignURL(objectKey, oss.HTTPPut, 60, options...)
    39  	if err != nil {
    40  		HandleError(err)
    41  	}
    42  
    43  	err = bucket.PutObjectFromFileWithURL(signedURL, localFile, options...)
    44  	if err != nil {
    45  		HandleError(err)
    46  	}
    47  
    48  	// Get object
    49  	signedURL, err = bucket.SignURL(objectKey, oss.HTTPGet, 60)
    50  	if err != nil {
    51  		HandleError(err)
    52  	}
    53  
    54  	body, err := bucket.GetObjectWithURL(signedURL)
    55  	if err != nil {
    56  		HandleError(err)
    57  	}
    58  	defer body.Close()
    59  
    60  	// Read content
    61  	data, err := ioutil.ReadAll(body)
    62  	if err != nil {
    63  		fmt.Println("Error:", err)
    64  		os.Exit(-1)
    65  	}
    66  	fmt.Println("data:", string(data))
    67  
    68  	err = bucket.GetObjectToFileWithURL(signedURL, "mynewfile-1.jpg")
    69  	if err != nil {
    70  		HandleError(err)
    71  	}
    72  
    73  	// Delete the object and bucket
    74  	err = DeleteTestBucketAndObject(bucketName)
    75  	if err != nil {
    76  		HandleError(err)
    77  	}
    78  
    79  	fmt.Println("SignURLSample completed")
    80  }