Heim  >  Artikel  >  Backend-Entwicklung  >  Wie streame ich Datei-Uploads auf AWS S3 mit Go?

Wie streame ich Datei-Uploads auf AWS S3 mit Go?

Susan Sarandon
Susan SarandonOriginal
2024-11-06 12:28:02259Durchsuche

How to Stream File Upload to AWS S3 Using Go?

Streamen Sie das Hochladen von Dateien auf AWS S3 mit Go

Mit dem Upload-Manager in Go können Sie große Dateien direkt auf AWS S3 hochladen und gleichzeitig den Speicher- und Festplattenspeicherbedarf minimieren. So geht's:

Mit dem Upload-Manager

  1. Importieren Sie die erforderlichen Bibliotheken:

    import (
        "github.com/aws/aws-sdk-go/aws/credentials"
        "github.com/aws/aws-sdk-go/aws"
        "github.com/aws/aws-sdk-go/aws/session"
        "github.com/aws/aws-sdk-go/service/s3/s3manager"
    )
  2. Erstellen Sie eine AWS-Konfiguration:

    awsConfig := &aws.Config{
        Region: aws.String("us-west-2"),
    }

    Sie können bei Bedarf optional Ihren eigenen Zugriffsschlüssel und geheimen Schlüssel in der Konfiguration angeben.

  3. Eine neue Sitzung und einen Uploader initialisieren:

    sess := session.Must(session.NewSession(awsConfig))
    uploader := s3manager.NewUploader(sess)
  4. Passen Sie die Parameter des Uploaders an (optional):

    // Set the part size, concurrency, and max upload parts
    uploader := s3manager.NewUploader(sess, func(u *s3manager.Uploader) {
        u.PartSize = 5 * 1024 * 1024 // 5MB is the minimum allowed part size
        u.Concurrency = 2            // Default is 5
    })
  5. Öffnen Sie die hochzuladende Datei:

    f, err := os.Open(filename)
    if err != nil {
        fmt.Printf("failed to open file %q, %v\n", filename, err)
        return
    }
  6. Laden Sie die Datei mit dem Uploader hoch:

    result, err := uploader.Upload(&s3manager.UploadInput{
        Bucket: aws.String(myBucket),
        Key:    aws.String(myKey),
        Body:   f,
    })
  7. Behandeln Sie mögliche Fehler:

    if err != nil {
        fmt.Printf("failed to upload file, %v\n", err)
        return
    }
  8. Drucken Sie den Upload aus Standort:

    fmt.Printf("file uploaded to, %s\n", result.Location)

Durch die Verwendung des Upload-Managers auf diese Weise können Sie große Dateien mit minimalem Ressourcenverbrauch direkt auf AWS S3 streamen und hochladen.

Das obige ist der detaillierte Inhalt vonWie streame ich Datei-Uploads auf AWS S3 mit Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn