aws s3 android sdk,aws-sdk-go s3相关API的使用

package main

import (

"fmt"

"os"

"strings"

"github.com/aws/aws-sdk-go/aws"

"github.com/aws/aws-sdk-go/aws/credentials"

"github.com/aws/aws-sdk-go/aws/session"

"github.com/aws/aws-sdk-go/service/s3"

"github.com/aws/aws-sdk-go/service/s3/s3manager"

)

const (

accessKey = "添加自己的accessKey"

secretKey = "添加自己的secretKey"

region = "添加自己的region"

)

func exitErrorf(msg string, args ...interface{}) {

fmt.Fprintf(os.Stderr, msg+"\n", args...)

os.Exit(1)

}

// S3CreateBucket ...

func S3CreateBucket(bucket string) {

sess, _ := session.NewSession(&aws.Config{

Credentials: credentials.NewStaticCredentials(accessKey, secretKey, ""),

Region: aws.String(region),

})

svc := s3.New(sess)

_, err := svc.CreateBucket(&s3.CreateBucketInput{

Bucket: aws.String(bucket),

})

if err != nil {

exitErrorf("Unable to create bucket %q, %v", bucket, err)

}

err = svc.WaitUntilBucketExists(&s3.HeadBucketInput{

Bucket: aws.String(bucket),

})

if err != nil {

exitErrorf("Error occurred while waiting for bucket to be created, %v", err)

}

fmt.Printf("Bucket %q successfully created\n", bucket)

}

// S3ListBuckets ...

func S3ListBuckets() {

sess, _ := session.NewSession(&aws.Config{

Credentials: credentials.NewStaticCredentials(accessKey, secretKey, ""),

Region: aws.String(region),

})

svc := s3.New(sess)

result, err := svc.ListBuckets(nil)

if err != nil {

exitErrorf("Unable to list buckets, %v", err)

}

for _, b := range result.Buckets {

fmt.Printf("%s created on %s\n", aws.StringValue(b.Name), aws.TimeValue(b.CreationDate))

}

}

// S3DeleteBucket ...

func S3DeleteBucket(bucket string) {

sess, _ := session.NewSession(&aws.Config{

Credentials: credentials.NewStaticCredentials(accessKey, secretKey, ""),

Region: aws.String(region)},

)

svc := s3.New(sess)

_, err := svc.DeleteBucket(&s3.DeleteBucketInput{

Bucket: aws.String(bucket),

})

if err != nil {

exitErrorf("Unable to delete bucket %q, %v", bucket, err)

}

err = svc.WaitUntilBucketNotExists(&s3.HeadBucketInput{

Bucket: aws.String(bucket),

})

if err != nil {

exitErrorf("Error occurred while waiting for bucket to be deleted, %v", err)

}

fmt.Printf("Bucket %q successfully deleted\n", bucket)

}

// S3PutObject ....

func S3PutObject(bucket string, key string, value string) {

sess, _ := session.NewSession(&aws.Config{

Credentials: credentials.NewStaticCredentials(accessKey, secretKey, ""),

Region: aws.String(region)},

)

uploader := s3manager.NewUploader(sess)

_, err := uploader.Upload(&s3manager.UploadInput{

Bucket: aws.String(bucket),

Key: aws.String(key),

Body: strings.NewReader(value),

})

if err != nil {

exitErrorf("Unable to upload %q to %q, %v", key, bucket, err)

}

fmt.Printf("Successfully uploaded %q to %q\n", key, bucket)

}

// S3ListObjects ...

func S3ListObjects(bucket string) {

sess, _ := session.NewSession(&aws.Config{

Credentials: credentials.NewStaticCredentials(accessKey, secretKey, ""),

Region: aws.String(region)},

)

svc := s3.New(sess)

resp, err := svc.ListObjectsV2(&s3.ListObjectsV2Input{Bucket: aws.String(bucket)})

if err != nil {

exitErrorf("Unable to list items in bucket %q, %v", bucket, err)

}

for _, item := range resp.Contents {

fmt.Println("Name: ", *item.Key)

fmt.Println("Last modified:", *item.LastModified)

fmt.Println("Size: ", *item.Size)

fmt.Println("Storage class:", *item.StorageClass)

fmt.Println("")

}

fmt.Println("Found", len(resp.Contents), "items in bucket", bucket)

}

// S3GetObject ...

func S3GetObject(bucket string, key string) {

sess, _ := session.NewSession(&aws.Config{

Credentials: credentials.NewStaticCredentials(accessKey, secretKey, ""),

Region: aws.String(region)},

)

downloader := s3manager.NewDownloader(sess)

buffer := aws.NewWriteAtBuffer([]byte{})

_, err := downloader.Download(buffer,

&s3.GetObjectInput{

Bucket: aws.String(bucket),

Key: aws.String(key),

})

if err != nil {

exitErrorf("Unable to download key %q, %v", key, err)

}

fmt.Println("Downloaded", string(buffer.Bytes()))

}

// S3DeleteObject ....

func S3DeleteObject(bucket string, key string) {

sess, _ := session.NewSession(&aws.Config{

Credentials: credentials.NewStaticCredentials(accessKey, secretKey, ""),

Region: aws.String(region)},

)

svc := s3.New(sess)

_, err := svc.DeleteObject(&s3.DeleteObjectInput{Bucket: aws.String(bucket), Key: aws.String(key)})

if err != nil {

exitErrorf("Unable to delete object %q from bucket %q, %v", key, bucket, err)

}

err = svc.WaitUntilObjectNotExists(&s3.HeadObjectInput{

Bucket: aws.String(bucket),

Key: aws.String(key),

})

if err != nil {

exitErrorf("Error occurred while waiting for object %q to be deleted, %v", key, err)

}

fmt.Printf("Object %q successfully deleted\n", key)

}

// S3DeleteObjects ...

func S3DeleteObjects(bucket string) {

sess, _ := session.NewSession(&aws.Config{

Credentials: credentials.NewStaticCredentials(accessKey, secretKey, ""),

Region: aws.String(region)},

)

svc := s3.New(sess)

iter := s3manager.NewDeleteListIterator(svc, &s3.ListObjectsInput{

Bucket: aws.String(bucket),

})

if err := s3manager.NewBatchDeleteWithClient(svc).Delete(aws.BackgroundContext(), iter); err != nil {

exitErrorf("Unable to delete objects from bucket %q, %v", bucket, err)

}

fmt.Printf("Deleted object(s) from bucket: %q\n", bucket)

}

// S3CopyObjects ...

func S3CopyObjects(bucket string, other string, key string) {

sess, _ := session.NewSession(&aws.Config{

Credentials: credentials.NewStaticCredentials(accessKey, secretKey, ""),

Region: aws.String(region)},

)

svc := s3.New(sess)

source := bucket + "/" + key

_, err := svc.CopyObject(&s3.CopyObjectInput{Bucket: aws.String(other), CopySource: aws.String(source), Key: aws.String(key)})

if err != nil {

exitErrorf("Unable to copy key from bucket %q to bucket %q, %v", bucket, other, err)

}

err = svc.WaitUntilObjectExists(&s3.HeadObjectInput{Bucket: aws.String(other), Key: aws.String(key)})

if err != nil {

exitErrorf("Error occurred while waiting for key %q to be copied to bucket %q, %v", bucket, key, other, err)

}

fmt.Printf("Key %q successfully copied from bucket %q to bucket %q\n", key, bucket, other)

}

func main() {

S3CreateBucket("owb-test-1")

S3CreateBucket("owb-test-2")

fmt.Println("-------------------------------------------------")

S3ListBuckets()

fmt.Println("-------------------------------------------------")

S3PutObject("owb-test-1", "key1", "value1")

S3PutObject("owb-test-1", "key2", "value2")

S3PutObject("owb-test-1", "key3", "value3")

fmt.Println("-------------------------------------------------")

S3GetObject("owb-test-1", "key1")

S3GetObject("owb-test-1", "key2")

S3GetObject("owb-test-1", "key3")

fmt.Println("-------------------------------------------------")

S3CopyObjects("owb-test-1", "owb-test-2", "key1")

S3CopyObjects("owb-test-1", "owb-test-2", "key2")

S3CopyObjects("owb-test-1", "owb-test-2", "key3")

fmt.Println("-------------------------------------------------")

S3ListObjects("owb-test-1")

S3ListObjects("owb-test-2")

fmt.Println("-------------------------------------------------")

S3DeleteObject("owb-test-1", "key1")

S3DeleteObject("owb-test-1", "key2")

S3DeleteObject("owb-test-1", "key3")

fmt.Println("-------------------------------------------------")

S3DeleteObjects("owb-test-2")

fmt.Println("-------------------------------------------------")

S3DeleteBucket("owb-test-1")

S3DeleteBucket("owb-test-2")

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值