| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- package sample
- import (
- "bytes"
- "fmt"
- "os"
- "strings"
- "github.com/aliyun/aliyun-oss-go-sdk/oss"
- )
- // PutObjectSample Put Object Sample
- func PutObjectSample() {
- // 创建Bucket
- bucket, err := GetTestBucket(bucketName)
- if err != nil {
- HandleError(err)
- }
- var val = "花间一壶酒,独酌无相亲。 举杯邀明月,对影成三人。"
- // 场景1:上传object,value是字符串
- err = bucket.PutObject(objectKey, strings.NewReader(val))
- if err != nil {
- HandleError(err)
- }
- // 场景2:上传object,value是[]byte
- err = bucket.PutObject(objectKey, bytes.NewReader([]byte(val)))
- if err != nil {
- HandleError(err)
- }
- // 场景3:上传本地文件,您自己打开文件,传入句柄
- fd, err := os.Open(localFile)
- if err != nil {
- HandleError(err)
- }
- defer fd.Close()
- err = bucket.PutObject(objectKey, fd)
- if err != nil {
- HandleError(err)
- }
- // 场景4:上传object,上传时指定对象属性
- options := []oss.Option{
- oss.Expires(futureDate),
- oss.ObjectACL(oss.ACLPublicRead),
- oss.Meta("myprop", "mypropval"),
- }
- err = bucket.PutObject(objectKey, strings.NewReader(val), options...)
- if err != nil {
- HandleError(err)
- }
- props, err := bucket.GetObjectDetailedMeta(objectKey)
- if err != nil {
- HandleError(err)
- }
- fmt.Println("Object Meta:", props)
- // 场景5:上传本地文件
- err = bucket.PutObjectFromFile(objectKey, localFile)
- if err != nil {
- HandleError(err)
- }
- // 场景6:上传本地文件,上传时指定对象属性
- options = []oss.Option{
- oss.Expires(futureDate),
- oss.ObjectACL(oss.ACLPublicRead),
- oss.Meta("myprop", "mypropval"),
- }
- err = bucket.PutObjectFromFile(objectKey, localFile, options...)
- if err != nil {
- HandleError(err)
- }
- props, err = bucket.GetObjectDetailedMeta(objectKey)
- if err != nil {
- HandleError(err)
- }
- fmt.Println("Object Meta:", props)
- // 删除object和bucket
- err = DeleteTestBucketAndObject(bucketName)
- if err != nil {
- HandleError(err)
- }
- fmt.Println("PutObjectSample completed")
- }
|