我想使用PHP和服务帐户从服务器上实现this workflow。基本上,我只想在服务器上生成简历URI,在客户端上发送它,然后从客户端上载。但是PHP SDK没有提供执行此操作的方法!
我不不想使用签名URL,因为它们不允许我控制要上传的文件。我只想使用PHP SDK加载的凭据(不记名令牌)进行简单的POST(如我链接的页面中所述)。
是否有必要这样做而无需重新编码整个身份验证部分?
答案 0 :(得分:0)
是否要重现[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