2013 年 7 月 29 日以降、GCS Web サービスは通常の「HTTP/1.1 200 OK」ではなく「HTTP/1.1 100 Continue」を返すようになりました (その後にサーバーに関するメタデータが続きます)。
これは、私の側で PUT オブジェクトを実行したときに見られます。
私の質問は、どうすればこれを解決できますか? リクエストを再送信するだけですか?リクエストを別の場所にリダイレクトしますか?
私のリクエストは次のようになります。
$headers = array('Host: '.$bucket.'.commondatastorage.googleapis.com',
'Date: '.$timestamp, $version_header, 'Content-Type: text/plain',
$project_header, 'Content-Length: '.filesize($objectPath),
'Authorization: OAuth '.$accessToken);
$c = curl_init();
curl_setopt($c, CURLOPT_URL, $url);
curl_setopt($c, CURLOPT_PUT, 1);
curl_setopt($c, CURLOPT_INFILE, $fp);
curl_setopt($c, CURLOPT_INFILESIZE, filesize($objectPath));
curl_setopt($c, CURLOPT_HEADER, 1);
curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($c, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($c, CURLOPT_TIMEOUT, 60); //timeout in 60s
curl_setopt($c, CURLOPT_HTTPHEADER, $headers);
$response = curl_exec($c);