문제:
미리 서명된 POST를 수행하는 방법 upload - 기존의 사전 서명된 PUT을 사용하지 않고 Go를 사용하여 AWS S3 버킷에 파일을 업로드합니다. 방법?
해결책:
미리 서명된 POST 업로드를 수행하려면 다음 단계를 따르십시오.
다중 부분 양식 데이터 구성 및 게시: 다음 필드를 사용하여 다중 부분 양식 데이터 요청을 생성합니다.
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 }
위 내용은 Go를 사용하여 AWS S3에 미리 서명된 POST 파일을 업로드하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!