Bagaimana untuk Menstrim Fail Besar ke AWS S3 dengan Go?

Susan Sarandon
Lepaskan: 2024-11-08 04:54:02
asal
924 orang telah melayarinya

How to Stream Large Files to AWS S3 with Go?

Strim Fail Muat Naik ke AWS S3 Menggunakan Go

Cabaran:

Strim berbilang bahagian yang besar /form-data fail terus ke AWS S3, meminimumkan memori dan jejak cakera.

Penyelesaian:

Untuk mencapainya, kami akan menggunakan Pemuat Naik S3 daripada github .com/aws/aws-sdk-go library.

Pelaksanaan:

  1. Buat pemuat naik S3 baharu yang dikonfigurasikan dengan parameter yang diingini (saiz ketulan, konkurensi, dll.).
  2. Buka fail untuk dimuat naik.
  3. Gunakan fungsi Muat Naik pemuat naik untuk menstrim fail ke S3.
  4. Kendalikan ralat atau paparkan hasil muat naik.

Contoh Kod:

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)
}
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Menstrim Fail Besar ke AWS S3 dengan Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!