在Go 中執行預簽名POST 上傳到AWS S3
在本指南中,我們將深入研究執行預簽名的細節-使用Go 簽章POST 上傳到AWS S3 儲存桶。此方法不同於涉及 PUT 的更常見的預簽上傳機制。
先決條件:
多部分錶單資料建構與POST請求:
要啟動上傳,請準備包含策略中指定的所有欄位的多部分錶單資料請求,包括簽署的策略文件、金鑰和文件內容。使用多部分套件的 CreateFormField 方法建立每個表單欄位。
程式碼範例:
以下Go 程式碼片段概述了該流程:
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 }
按照以下步驟,您可以使用預簽POST 方法將檔案無縫上傳到AWS S3 儲存桶走吧。
以上是如何使用 Go 執行預簽 POST 上傳到 AWS S3?的詳細內容。更多資訊請關注PHP中文網其他相關文章!