Durchführen eines vorsignierten POST-Uploads auf AWS S3 in Go
In diesem Leitfaden werden wir uns mit den Besonderheiten der Durchführung eines Vorab-Uploads befassen Signierter POST-Upload in einen AWS S3-Bucket mit Go. Dieser Ansatz unterscheidet sich vom häufigeren vorsignierten Upload-Mechanismus mit PUT.
Voraussetzungen:
Mehrteilige Formulardatenkonstruktion und POST-Anfrage:
Um den Upload zu starten, bereiten Sie sich vor eine mehrteilige Formulardatenanforderung, die alle in der Richtlinie angegebenen Felder enthält, einschließlich des signierten Richtliniendokuments, des Schlüssels und des Dateiinhalts. Verwenden Sie die CreateFormField-Methode des Multipart-Pakets, um jedes Formularfeld zu erstellen.
Codebeispiel:
Hier ist ein Go-Codeausschnitt, der den Prozess beschreibt:
func Upload(url string, fields Fields) error { var b bytes.Buffer w := multipart.NewWriter(&b) for _, f := range fields { fw, err := w.CreateFormField(f.Key) if err != nil { return err } if _, err := fw.Write([]byte(f.Value)); err != nil { return err } } w.Close() req, err := http.NewRequest("POST", url, &b) if err != nil { return err } req.Header.Set("Content-Type", w.FormDataContentType()) client := &http.Client{} res, err := client.Do(req) if err != nil { return err } if res.StatusCode != http.StatusOK { err = fmt.Errorf("bad status: %s", res.Status) } return nil }
Indem Sie diese Schritte befolgen, können Sie mithilfe der vorsignierten POST-Methode in nahtlos Dateien in einen AWS S3-Bucket hochladen Los.
Das obige ist der detaillierte Inhalt vonWie führe ich mit Go einen vorsignierten POST-Upload auf AWS S3 durch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!