第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用 golang 從公共 s3 存儲桶下載

如何使用 golang 從公共 s3 存儲桶下載

Go
aluckdog 2023-06-05 17:26:10
我正在實現(xiàn)一個從 s3 存儲桶下載文件的功能。當(dāng)存儲桶是私有的并且我設(shè)置了憑據(jù)時,這工作正常os.Setenv("AWS_ACCESS_KEY_ID",?"test") os.Setenv("AWS_SECRET_ACCESS_KEY",?"test")但是,我按照此處所述公開了 s3 存儲桶,現(xiàn)在我想在沒有憑據(jù)的情況下下載它。func DownloadFromS3Bucket(bucket, item, path string) {? ? file, err := os.Create(filepath.Join(path, item))? ? if err != nil {? ? ? ? fmt.Printf("Error in downloading from file: %v \n", err)? ? ? ? os.Exit(1)? ? }? ? defer file.Close()? ? sess, _ := session.NewSession(&aws.Config{? ? ? ? Region: aws.String(constants.AWS_REGION)},? ? )? ? // Create a downloader with the session and custom options? ? downloader := s3manager.NewDownloader(sess, func(d *s3manager.Downloader) {? ? ? ? d.PartSize = 64 * 1024 * 1024 // 64MB per part? ? ? ? d.Concurrency = 6? ? })? ? numBytes, err := downloader.Download(file,? ? ? ? &s3.GetObjectInput{? ? ? ? ? ? Bucket: aws.String(bucket),? ? ? ? ? ? Key:? ? aws.String(item),? ? ? ? })? ? if err != nil {? ? ? ? fmt.Printf("Error in downloading from file: %v \n", err)? ? ? ? os.Exit(1)? ? }? ? fmt.Println("Download completed", file.Name(), numBytes, "bytes")}但是現(xiàn)在我遇到了一個錯誤。Error in downloading from file: NoCredentialProviders: no valid providers in chain. Deprecated.? ? For verbose messaging see aws.Config.CredentialsChainVerboseErrors知道如何在沒有憑據(jù)的情況下下載它嗎?
查看完整描述

1 回答

?
拉丁的傳說

TA貢獻1789條經(jīng)驗 獲得超8個贊

我們可以在創(chuàng)建session的時候設(shè)置Credentials: credentials.AnonymousCredentials。以下是工作代碼。


func DownloadFromS3Bucket(bucket, item, path string) {

    file, err := os.Create(filepath.Join(path, item))

    if err != nil {

        fmt.Printf("Error in downloading from file: %v \n", err)

        os.Exit(1)

    }


    defer file.Close()


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

        Region: aws.String(constants.AWS_REGION), Credentials: credentials.AnonymousCredentials},

    )


    // Create a downloader with the session and custom options

    downloader := s3manager.NewDownloader(sess, func(d *s3manager.Downloader) {

        d.PartSize = 64 * 1024 * 1024 // 64MB per part

        d.Concurrency = 6

    })


    numBytes, err := downloader.Download(file,

        &s3.GetObjectInput{

            Bucket: aws.String(bucket),

            Key:    aws.String(item),

        })

    if err != nil {

        fmt.Printf("Error in downloading from file: %v \n", err)

        os.Exit(1)

    }


    fmt.Println("Download completed", file.Name(), numBytes, "bytes")

}


查看完整回答
反對 回復(fù) 2023-06-05
  • 1 回答
  • 0 關(guān)注
  • 181 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號