Heim > Artikel > Backend-Entwicklung > Wie kann ich mit Go vorsignierte POST-Datei-Uploads in AWS S3 durchführen?
Problem:
So führen Sie einen vorsignierten POST durch Upload zum Hochladen von Dateien in einen AWS S3-Bucket mit Go, ohne den herkömmlichen vorsignierten PUT zu verwenden Methode?
Lösung:
Um einen vorsignierten POST-Upload durchzuführen, befolgen Sie diese Schritte:
Mehrteilige Formulardaten erstellen und posten: Erstellen Sie eine mehrteilige Formulardatenanforderung mit den folgenden Feldern:
Beispielcode in Go:
import ( "bytes" "fmt" "io" "mime/multipart" "net/http" "strings" ) // Fields represents the fields to be uploaded in the multipart form data request. type Fields struct { Key, Value string } // Upload performs a Pre-signed POST upload using the provided URL and fields. 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 := io.WriteString(fw, 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 }
Das obige ist der detaillierte Inhalt vonWie kann ich mit Go vorsignierte POST-Datei-Uploads in AWS S3 durchführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!