繁体   English   中英

在PHP中执行断点续传-Google云存储

[英]Performing a Resumable Upload in PHP - Google Cloud Storage

我想使用PHP和服务帐户从服务器上实现此工作流程 基本上,我只想在服务器上生成简历URI,在客户端上发送它,然后从客户端上载。 但是PHP SDK没有提供执行此操作的方法!

希望使用签名的URL,因为他们没有让我来控制被上传的文件。 我只想使用PHP SDK加载的凭据(不记名令牌)进行简单的POST(如我链接的页面中所述)。

反正有没有这样做,而无需重新编码整个身份验证部分?

是否要重现[1]中提供的步骤,以使用PHP保存可恢复的会话URI?

如果是这种情况,我可以考虑使用file_get_contents()函数构建一个简单的PHP POST请求(使用http_build_query()函数[2]生成一个URL编码的查询字符串以指定POST变量)。

例如,对于可恢复的会话(如文档[1]所示):

POST https://www.googleapis.com/upload/storage/v1/b/myBucket/o?uploadType=resumable HTTP/1.1
Authorization: Bearer [YOUR_AUTH_TOKEN]
Content-Length: 38
Content-Type: application/json; charset=UTF-8
X-Upload-Content-Type: image/jpeg
X-Upload-Content-Length: 2000000

{
  "name": "myObject"
}

您可以尝试使用PHP脚本发出此POST请求。 PHP脚本的可能选项与此类似:

<?php

    $post = http_build_query(array('name'=>'myObject')); // POST variable "name"

    // Create the HTTP Headers
    $headers = array(
        'http' => array(
            'method'  => 'POST',
            'header'  => "Content-type: application/json\r\n"."charset=UTF-8\r\n"."X-Upload-Content-Type: image/jpeg\r\n"."X-Upload-Content-Length: 2000000\r\n",
            'content' => $post
            )
        );

    $s_context = stream_context_create($headers);

    $uri = file_get_contents('https://www.googleapis.com/upload/storage/v1/b/myBucket/o?uploadType=resumable', false, $s_context);

?>

您可以尝试使用此PHP脚本并发布结果吗?

[1] https://cloud.google.com/storage/docs/json_api/v1/how-tos/resumable-upload

[2] http://php.net/manual/zh/function.http-build-query.php

暂无
暂无

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

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