/
www
/
wwwroot
/
alo88.autos
/
wp-content
/
plugins
/
wp-content-crawler
/
app
/
vendor
/
google
/
cloud-core
/
src
/
Upload
/
Upload File
HOME
<?php /** * Copyright 2017 Google Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ namespace Google\Cloud\Core\Upload; use Google\Cloud\Core\RequestWrapper; use GuzzleHttp\Psr7\Request; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\StreamInterface; /** * Upload data to Cloud Storage using a Signed URL */ class SignedUrlUploader extends ResumableUploader { /** * @param RequestWrapper $requestWrapper * @param string|resource|StreamInterface $data * @param string $uri * @param array $options [optional] { * Optional configuration. * * @type array $metadata Metadata on the resource. * @type int $chunkSize Size of the chunks to send incrementally during * a resumable upload. Must be in multiples of 262144 bytes. * @type array $restOptions HTTP client specific configuration options. * @type float $requestTimeout Seconds to wait before timing out the * request. **Defaults to** `0`. * @type int $retries Number of retries for a failed request. * **Defaults to** `3`. * @type string $contentType Content type of the resource. * @type string $origin If the target has Cross-Origin Resource Sharing * enabled, the value of the Origin header to be used in upload * requests. * } */ public function __construct( RequestWrapper $requestWrapper, $data, $uri, array $options = [] ) { if (isset($options['origin'])) { $this->headers['Origin'] = $options['origin']; unset($options['origin']); } parent::__construct($requestWrapper, $data, $uri, $options); } /** * Creates the resume URI. * * @return string */ protected function createResumeUri() { $headers = $this->headers + [ 'Content-Type' => $this->contentType, 'Content-Length' => 0, 'x-goog-resumable' => 'start' ]; $request = new Request( 'POST', $this->uri, $headers ); $response = $this->requestWrapper->send($request, $this->requestOptions); return $this->resumeUri = $response->getHeaderLine('Location'); } /** * Decode the response body * * @param ResponseInterface $response * @return string */ protected function decodeResponse(ResponseInterface $response) { return $response->getBody(); } }