首頁  >  文章  >  後端開發  >  如何使用 Go 將大檔案串流傳輸到 AWS S3?

如何使用 Go 將大檔案串流傳輸到 AWS S3?

Susan Sarandon
Susan Sarandon原創
2024-11-08 04:54:02932瀏覽

How to Stream Large Files to AWS S3 with Go?

使用Go 上傳檔案到AWS S3

挑戰:

挑戰:

挑戰:

挑戰:

  1. 挑戰:
  2. 挑戰:
挑戰:

挑戰:
import (
    "github.com/aws/aws-sdk-go/aws/session"
    "github.com/aws/aws-sdk-go/service/s3/s3manager"
)

func main() {
    // Create an S3 uploader with custom options
    uploader := s3manager.NewUploader(session.Must(session.NewSession()), func(u *s3manager.Uploader) {
        u.PartSize = 5 * 1024 * 1024 // 5MB part size
        u.Concurrency = 2           // 2 concurrent uploads
    })

    // Open the file for upload
    f, err := os.Open("file.txt")
    if err != nil {
        panic(err)
    }
    defer f.Close()

    // Stream file to S3
    result, err := uploader.Upload(&s3manager.UploadInput{
        Bucket: aws.String("my-bucket"),
        Key:    aws.String("file.txt"),
        Body:   f,
    })

    if err != nil {
        panic(err)
    }

    // Display uploaded file information
    fmt.Printf("File uploaded to: %s", result.Location)
}
流式傳輸大型分段/form-data 檔案直接傳輸到AWS S3,最大限度地減少記憶體和磁碟解決方案:為了實現此目的,我們將使用github .com/aws/aws-sdk-go 中的S3 上傳器庫。 實作:建立一個配置了所需參數(區塊大小、並發等)的新 S3 上傳器。 開啟要上傳的檔案。 使用上傳者的上傳功能將檔案串流傳輸到S3.處理錯誤或顯示上傳結果。 範例程式碼:

以上是如何使用 Go 將大檔案串流傳輸到 AWS S3?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn