/
www
/
wwwroot
/
alo88.autos
/
wp-content
/
plugins
/
wp-content-crawler
/
app
/
vendor
/
google
/
cloud-core
/
src
/
Upload
/
Upload File
HOME
<?php /** * Copyright 2016 Google Inc. All Rights Reserved. * * 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 Google\Cloud\Core\UriTrait; use GuzzleHttp\Psr7\Utils; use Psr\Http\Message\StreamInterface; /** * Provides a base impementation for uploads. */ abstract class AbstractUploader { use UriTrait; const UPLOAD_TYPE_RESUMABLE = 'resumable'; const UPLOAD_TYPE_MULTIPART = 'multipart'; const UPLOAD_TYPE_STREAMABLE = 'streamable'; const UPLOAD_TYPE_SIGNED = 'signed'; const RESUMABLE_LIMIT = 5000000; /** * @var RequestWrapper */ protected $requestWrapper; /** * @var StreamInterface */ protected $data; /** * @var string */ protected $uri; /** * @var array */ protected $metadata; /** * @var int */ protected $chunkSize; /** * @var array */ protected $requestOptions; /** * @var string */ protected $contentType; /** * @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. * } */ public function __construct( RequestWrapper $requestWrapper, $data, $uri, array $options = [] ) { $this->requestWrapper = $requestWrapper; $this->data = Utils::streamFor($data); $this->uri = $uri; $this->metadata = isset($options['metadata']) ? $options['metadata'] : []; $this->chunkSize = isset($options['chunkSize']) ? $options['chunkSize'] : null; $this->requestOptions = array_intersect_key($options, [ 'restOptions' => null, 'retries' => null, 'requestTimeout' => null ]); $this->contentType = isset($options['contentType']) ? $options['contentType'] : 'application/octet-stream'; } /** * @return array */ abstract public function upload(); }