我一直在尝试使用高浪和本地堆栈在S3存储桶上学习CRUD操作
使用以下代码
import (
"fmt"
"io/ioutil"
"os"
"strings"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/awserr"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/s3"
)
var (
s3session *s3.S3
)
const (
REGION = "us-east-1"
Bucket_Name string = "sahil1234"
)
func init() {
s3session = s3.New(session.Must(session.NewSession(&aws.Config{
Region: aws.String("us-east-1"),
Endpoint: aws.String("http://localhost:4566/"),
})))
}
func listBuckets() (resp *s3.ListBucketsOutput) {
resp, err := s3session.ListBuckets(&s3.ListBucketsInput{})
if err != nil {
panic(err)
}
return resp
}
func createBucket() (resp *s3.CreateBucketOutput) {
resp, err := s3session.CreateBucket(&s3.CreateBucketInput{
// ACL: aws.String(s3.BucketCannedACLPrivate),
// ACL: aws.String(s3.BucketCannedACLPublicRead),
Bucket: aws.String(Bucket_Name),
CreateBucketConfiguration: &s3.CreateBucketConfiguration{
LocationConstraint: aws.String(REGION),
},
})
if err != nil {
if aerr, ok := err.(awserr.Error); ok {
switch aerr.Code() {
case s3.ErrCodeBucketAlreadyExists:
fmt.Println("Bucket name already in use!")
panic(err)
case s3.ErrCodeBucketAlreadyOwnedByYou:
fmt.Println("Bucket exists and is owned by you!")
default:
panic(err)
}
}
}
return resp
}
func uploadObject(filename string) (resp *s3.PutObjectOutput) {
f, err := os.Open(filename)
if err != nil {
panic(err)
}
翻过高山走不出你
相关分类