Go で AWS S3 への事前署名済み POST アップロードの実行
このガイドでは、事前署名済み POST アップロードの実行の詳細について詳しく説明しますGo を使用して AWS S3 バケットに署名付き POST アップロードします。このアプローチは、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 を使用して AWS S3 への事前署名済み POST アップロードを実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。