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

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

Susan Sarandon
Freigeben: 2024-11-06 12:28:02
Original
323 Leute haben es durchsucht

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"
    )
    Nach dem Login kopieren
  2. Erstellen Sie eine AWS-Konfiguration:

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

    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)
    Nach dem Login kopieren
  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
    })
    Nach dem Login kopieren
  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
    }
    Nach dem Login kopieren
  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,
    })
    Nach dem Login kopieren
  7. Behandeln Sie mögliche Fehler:

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

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

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage