Выполнение возобновляемой загрузки в PHP - Google Cloud Storage - PullRequest
0 голосов
/ 20 сентября 2018

Я хочу добиться этого рабочего процесса с моего сервера, используя PHP и служебную учетную запись.По сути, я просто хочу сгенерировать URI резюме на моем сервере, отправить его на мой клиент и выполнить загрузку с моего клиента.Но PHP SDK не предоставляет метод для этого!

Я не хочу использовать подписанный URL, поскольку они не позволяют мне контролировать загружаемый файл.Я просто хочу сделать простой POST, как описано на странице, на которую я ссылаюсь, используя учетные данные (токен Bearer), загруженные в PHP SDK.часть?

1 Ответ

0 голосов
/ 21 сентября 2018

Хотите ли вы воспроизвести шаги, описанные в [1], для сохранения возобновляемого URI сеанса с использованием PHP?

Если это так, я могу подумать, что вы можете создать простой запрос PHP POST, используяфункция file_get_contents () (используйте функцию 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/en/function.http-build-query.php

...