9 "github.com/aliyun/aliyun-oss-go-sdk/oss"
13 pastDate = time.Date(2009, time.November, 10, 23, 0, 0, 0, time.UTC)
14 futureDate = time.Date(2049, time.January, 10, 23, 0, 0, 0, time.UTC)
17 // HandleError is the error handling method in the sample code
18 func HandleError(err error) {
19 fmt.Println("occurred error:", err)
23 // GetTestBucket creates the test bucket
24 func GetTestBucket(bucketName string) (*oss.Bucket, error) {
26 client, err := oss.New(endpoint, accessID, accessKey)
32 err = client.CreateBucket(bucketName)
38 bucket, err := client.Bucket(bucketName)
46 // DeleteTestBucketAndLiveChannel 删除sample的channelname和bucket,该函数为了简化sample,让sample代码更明了
47 func DeleteTestBucketAndLiveChannel(bucketName string) error {
49 client, err := oss.New(endpoint, accessID, accessKey)
55 bucket, err := client.Bucket(bucketName)
62 result, err := bucket.ListLiveChannel(oss.Marker(marker))
67 for _, channel := range result.LiveChannel {
68 err := bucket.DeleteLiveChannel(channel.Name)
74 if result.IsTruncated {
75 marker = result.NextMarker
82 err = client.DeleteBucket(bucketName)
90 // DeleteTestBucketAndObject deletes the test bucket and its objects
91 func DeleteTestBucketAndObject(bucketName string) error {
93 client, err := oss.New(endpoint, accessID, accessKey)
99 bucket, err := client.Bucket(bucketName)
105 keyMarker := oss.KeyMarker("")
106 uploadIDMarker := oss.UploadIDMarker("")
108 lmur, err := bucket.ListMultipartUploads(keyMarker, uploadIDMarker)
112 for _, upload := range lmur.Uploads {
113 var imur = oss.InitiateMultipartUploadResult{Bucket: bucket.BucketName,
114 Key: upload.Key, UploadID: upload.UploadID}
115 err = bucket.AbortMultipartUpload(imur)
120 keyMarker = oss.KeyMarker(lmur.NextKeyMarker)
121 uploadIDMarker = oss.UploadIDMarker(lmur.NextUploadIDMarker)
122 if !lmur.IsTruncated {
128 marker := oss.Marker("")
130 lor, err := bucket.ListObjects(marker)
134 for _, object := range lor.Objects {
135 err = bucket.DeleteObject(object.Key)
140 marker = oss.Marker(lor.NextMarker)
141 if !lor.IsTruncated {
147 err = client.DeleteBucket(bucketName)
155 // Object defines pair of key and value
161 // CreateObjects creates some objects
162 func CreateObjects(bucket *oss.Bucket, objects []Object) error {
163 for _, object := range objects {
164 err := bucket.PutObject(object.Key, strings.NewReader(object.Value))
172 // DeleteObjects deletes some objects.
173 func DeleteObjects(bucket *oss.Bucket, objects []Object) error {
174 for _, object := range objects {
175 err := bucket.DeleteObject(object.Key)