Google\Cloud\Storage\Connection\Rest::insertObject PHP Method

insertObject() public method

public insertObject ( array $args = [] )
$args array
    public function insertObject(array $args = [])
    {
        $args = $this->resolveUploadOptions($args);
        $isResumable = $args['resumable'];
        $uploadType = $isResumable ? AbstractUploader::UPLOAD_TYPE_RESUMABLE : AbstractUploader::UPLOAD_TYPE_MULTIPART;
        $uriParams = ['bucket' => $args['bucket'], 'query' => ['predefinedAcl' => $args['predefinedAcl'], 'uploadType' => $uploadType]];
        if ($isResumable) {
            return new ResumableUploader($this->requestWrapper, $args['data'], $this->expandUri(self::UPLOAD_URI, $uriParams), $args['uploaderOptions']);
        }
        return new MultipartUploader($this->requestWrapper, $args['data'], $this->expandUri(self::UPLOAD_URI, $uriParams), $args['uploaderOptions']);
    }

Usage Example

 /**
  * @dataProvider insertObjectProvider
  */
 public function testInsertObject(array $options, $expectedUploaderType, $expectedContentType, array $expectedMetadata)
 {
     $actualRequest = null;
     $response = new Response(200, ['Location' => 'http://www.mordor.com'], $this->successBody);
     $this->requestWrapper->send(Argument::type('Psr\\Http\\Message\\RequestInterface'), Argument::type('array'))->will(function ($args) use(&$actualRequest, $response) {
         $request = $args[0];
         if ($request->getMethod() === 'POST') {
             $actualRequest = $request;
         }
         return $response;
     });
     $rest = new Rest();
     $rest->setRequestWrapper($this->requestWrapper->reveal());
     $uploader = $rest->insertObject($options);
     $uploader->upload();
     list($contentType, $metadata) = $this->getContentTypeAndMetadata($actualRequest);
     $this->assertInstanceOf($expectedUploaderType, $uploader);
     $this->assertEquals($expectedContentType, $contentType);
     foreach ($expectedMetadata as $key => $value) {
         $this->assertEquals($value, $metadata[$key]);
     }
 }