代码拉取完成,页面将自动刷新
package sample
import (
"fmt"
"os"
"strings"
"time"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
)
var (
pastDate = time.Date(2009, time.November, 10, 23, 0, 0, 0, time.UTC)
futureDate = time.Date(2049, time.January, 10, 23, 0, 0, 0, time.UTC)
)
// HandleError is the error handling method in the sample code
func HandleError(err error) {
fmt.Println("occurred error:", err)
os.Exit(-1)
}
// GetTestBucket creates the test bucket
func GetTestBucket(bucketName string) (*oss.Bucket, error) {
// New client
client, err := oss.New(endpoint, accessID, accessKey)
if err != nil {
return nil, err
}
// Create bucket
err = client.CreateBucket(bucketName)
if err != nil {
return nil, err
}
// Get bucket
bucket, err := client.Bucket(bucketName)
if err != nil {
return nil, err
}
return bucket, nil
}
// DeleteTestBucketAndLiveChannel 删除sample的channelname和bucket,该函数为了简化sample,让sample代码更明了
func DeleteTestBucketAndLiveChannel(bucketName string) error {
// New Client
client, err := oss.New(endpoint, accessID, accessKey)
if err != nil {
return err
}
// Get Bucket
bucket, err := client.Bucket(bucketName)
if err != nil {
return err
}
marker := ""
for {
result, err := bucket.ListLiveChannel(oss.Marker(marker))
if err != nil {
HandleError(err)
}
for _, channel := range result.LiveChannel {
err := bucket.DeleteLiveChannel(channel.Name)
if err != nil {
HandleError(err)
}
}
if result.IsTruncated {
marker = result.NextMarker
} else {
break
}
}
// Delete Bucket
err = client.DeleteBucket(bucketName)
if err != nil {
return err
}
return nil
}
// DeleteTestBucketAndObject deletes the test bucket and its objects
func DeleteTestBucketAndObject(bucketName string) error {
// New client
client, err := oss.New(endpoint, accessID, accessKey)
if err != nil {
return err
}
// Get bucket
bucket, err := client.Bucket(bucketName)
if err != nil {
return err
}
// Delete part
keyMarker := oss.KeyMarker("")
uploadIDMarker := oss.UploadIDMarker("")
for {
lmur, err := bucket.ListMultipartUploads(keyMarker, uploadIDMarker)
if err != nil {
return err
}
for _, upload := range lmur.Uploads {
var imur = oss.InitiateMultipartUploadResult{Bucket: bucket.BucketName,
Key: upload.Key, UploadID: upload.UploadID}
err = bucket.AbortMultipartUpload(imur)
if err != nil {
return err
}
}
keyMarker = oss.KeyMarker(lmur.NextKeyMarker)
uploadIDMarker = oss.UploadIDMarker(lmur.NextUploadIDMarker)
if !lmur.IsTruncated {
break
}
}
// Delete objects
marker := oss.Marker("")
for {
lor, err := bucket.ListObjects(marker)
if err != nil {
return err
}
for _, object := range lor.Objects {
err = bucket.DeleteObject(object.Key)
if err != nil {
return err
}
}
marker = oss.Marker(lor.NextMarker)
if !lor.IsTruncated {
break
}
}
// Delete bucket
err = client.DeleteBucket(bucketName)
if err != nil {
return err
}
return nil
}
// Object defines pair of key and value
type Object struct {
Key string
Value string
}
// CreateObjects creates some objects
func CreateObjects(bucket *oss.Bucket, objects []Object) error {
for _, object := range objects {
err := bucket.PutObject(object.Key, strings.NewReader(object.Value))
if err != nil {
return err
}
}
return nil
}
// DeleteObjects deletes some objects.
func DeleteObjects(bucket *oss.Bucket, objects []Object) error {
for _, object := range objects {
err := bucket.DeleteObject(object.Key)
if err != nil {
return err
}
}
return nil
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。