在本地堆栈上使用 aws 开发工具包创建 S3 存储桶,最终得到位置 :/无

我一直在尝试使用高浪和本地堆栈在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)

    }


茅侃侃
浏览 83回答 1
1回答

翻过高山走不出你

现在最简单的选择是在配置中设置:S3ForcePathStyleS3ForcePathStyle: aws.Bool(true),这就是这样做的方式。aws-cli但是AWS正在弃用此选项,即使没有设定的日期。我会尝试找到一种方法,使它在没有此选项的情况下工作,并更新这个答案。
打开App,查看更多内容
随时随地看视频慕课网APP