繁体   English   中英

Google云端存储:上传对象返回HTTP / 1.1 100继续

[英]Google Cloud Storage: Upload Object is returning HTTP/1.1 100 Continue

我注意到,自2013年7月29日起,GCS网络服务已开始返回“ HTTP / 1.1 100继续”,而不是通常的“ HTTP / 1.1 200 OK”(其后是有关服务器的一些元数据)。

这是我最后做一个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);

这是HTTP 1.1的功能;

基本上,您的客户端发送标头的额外行;

Expect: 100-continue

...等待发布尸体几百毫秒。 如果超时到期或服务器发出100 Continue响应,则客户端继续上传,如果417 Expectation Failed ,则上传被中止。

这样,服务器就可以在上传之前检查它是否会接受请求。 例如,如果文件大小大于Google Cloud Storage的剩余配额,则在被拒绝之前上传文件将毫无用处。

上传完成后,您将照常收到其他200 OK响应。

编辑:

我看到您正在运行PHP。 有关此问题的更多信息,请参见PHP / Curl。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM