Heim > Artikel > Backend-Entwicklung > Wie streame ich Datei-Uploads 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:
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" )
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.
Eine neue Sitzung und einen Uploader initialisieren:
sess := session.Must(session.NewSession(awsConfig)) uploader := s3manager.NewUploader(sess)
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 })
Ö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 }
Laden Sie die Datei mit dem Uploader hoch:
result, err := uploader.Upload(&s3manager.UploadInput{ Bucket: aws.String(myBucket), Key: aws.String(myKey), Body: f, })
Behandeln Sie mögliche Fehler:
if err != nil { fmt.Printf("failed to upload file, %v\n", err) return }
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!