Go APIから返されたSignedURLをCORSで使用するにはどうすればよいですか?CORS with SignedURL
CURRENT SETUP:
バケツ設定
gsutil cors get gs://example-bucket
リターン:
[{
"maxAgeSeconds": 1,
"method": ["GET", "HEAD", "PUT", "DELETE", "POST", "OPTIONS"],
"origin": ["http://example.com", "https://example.com", "http://localhost:4000"],
"responseHeader": ["Origin", "Accept", "X-Requested-With", "Authorization", "Content-Type", "Content-Length", "Accept-Encoding", "X-CSRF-Token"
]}]
のGo API呼び出し
acc, _ := appengine.ServiceAccount(ctx)
signedUrl, err := storage.SignedURL(
"example-bucket",
fileName,
&storage.SignedURLOptions{
GoogleAccessID: acc,
SignBytes: func(b []byte) ([]byte, error) {
_, signedBytes, signingError := appengine.SignBytes(ctx, b)
return signedBytes, signingError
},
Method: "PUT",
ContentType: contentType,
Expires: time.Now().Add(1 * time.Hour),
})
JS XHR
は
SignedURLが囲碁APIによって生成される、すなわちxhr.open("PUT", signedUrl);
EXTRA NOTESは、常に他の場所で... https://storage.googleapis.com/example-bucket/fileName
で始まり、移動からSignedURLを使用します私はそれがwww.googleapis.com/storage
であるべきであることを読んだが、私はこれが問題であるとは思わない、確かに公式APIから返されたURLは共同起立。
私はリクエストヘッダが含まれていることを見ることができます:
access-control-request-headers: content-type,x-upload-content-type
access-control-request-method: PUT
origin: http://localhost:4000
をだから、それが必要なヘッダーのすべてのボックスをオフに刻むようです...