public function putFileRangeAsync(
        $share,
        $path,
        $content,
        Range $range,
        PutFileRangeOptions $options = null
    ) {
        Validate::canCastAsString($share, 'share');
        Validate::canCastAsString($path, 'path');
        Validate::notNullOrEmpty($path, 'path');
        Validate::notNullOrEmpty($share, 'share');
        Validate::notNull($range->getLength(), Resources::RESOURCE_RANGE_LENGTH_MUST_SET);
        $stream = Psr7\stream_for($content);

        $method      = Resources::HTTP_PUT;
        $headers     = array();
        $queryParams = array();
        $postParams  = array();
        $path        = $this->createPath($share, $path);

        if ($options == null) {
            $options = new PutFileRangeOptions();
        }

        $this->addOptionalQueryParam(
            $queryParams,
            Resources::QP_TIMEOUT,
            $options->getTimeout()
        );

        $this->addOptionalHeader(
            $headers,
            Resources::X_MS_RANGE,
            $range->getRangeString()
        );

        $this->addOptionalHeader(
            $headers,
            Resources::CONTENT_LENGTH,
            $range->getLength()
        );

        $this->addOptionalHeader(
            $headers,
            Resources::X_MS_WRITE,
            'Update'
        );

        $this->addOptionalHeader(
            $headers,
            Resources::CONTENT_MD5,
            $options->getContentMD5()
        );

        $this->addOptionalQueryParam(
            $queryParams,
            Resources::QP_COMP,
            'range'
        );

        return $this->sendAsync(
            $method,
            $headers,
            $queryParams,
            $postParams,
            $path,
            Resources::STATUS_CREATED,
            $stream,
            $options
        );
    }
public function putFileRangeAsync(
        $share,
        $path,
        $content,
        Range $range,
        PutFileRangeOptions $options = null
    ) {
        Validate::canCastAsString($share, 'share');
        Validate::canCastAsString($path, 'path');
        Validate::notNullOrEmpty($path, 'path');
        Validate::notNullOrEmpty($share, 'share');
        Validate::notNull($range->getLength(), Resources::RESOURCE_RANGE_LENGTH_MUST_SET);
        $stream = Psr7\stream_for($content);

        $method      = Resources::HTTP_PUT;
        $headers     = array();
        $queryParams = array();
        $postParams  = array();
        $path        = $this->createPath($share, $path);

        if ($options == null) {
            $options = new PutFileRangeOptions();
        }

        $this->addOptionalQueryParam(
            $queryParams,
            Resources::QP_TIMEOUT,
            $options->getTimeout()
        );

        $this->addOptionalHeader(
            $headers,
            Resources::X_MS_RANGE,
            $range->getRangeString()
        );

        $this->addOptionalHeader(
            $headers,
            Resources::CONTENT_LENGTH,
            $range->getLength()
        );

        $this->addOptionalHeader(
            $headers,
            Resources::X_MS_WRITE,
            'Update'
        );

        $this->addOptionalHeader(
            $headers,
            Resources::CONTENT_MD5,
            $options->getContentMD5()
        );

        $this->addOptionalQueryParam(
            $queryParams,
            Resources::QP_COMP,
            'range'
        );

        return $this->sendAsync(
            $method,
            $headers,
            $queryParams,
            $postParams,
            $path,
            Resources::STATUS_CREATED,
            $stream,
            $options
        );
    }
public function putFileRangeAsync ( $ share , $ path , $ content , Range $ range , PutFileRangeOptions $ options = null ) { Validate :: canCastAsString ( $ share , 'share' ) ; Validate :: canCastAsString ( $ path , 'path' ) ; Validate :: notNullOrEmpty ( $ path , 'path' ) ; Validate :: notNullOrEmpty ( $ share , 'share' ) ; Validate :: notNull ( $ range -> getLength ( ) , Resources :: RESOURCE_RANGE_LENGTH_MUST_SET ) ; $ stream = Psr7 \ stream_for ( $ content ) ; $ method = Resources :: HTTP_PUT ; $ headers = array ( ) ; $ queryParams = array ( ) ; $ postParams = array ( ) ; $ path = $ this -> createPath ( $ share , $ path ) ; if ( $ options == null ) { $ options = new PutFileRangeOptions ( ) ; } $ this -> addOptionalQueryParam ( $ queryParams , Resources :: QP_TIMEOUT , $ options -> getTimeout ( ) ) ; $ this -> addOptionalHeader ( $ headers , Resources :: X_MS_RANGE , $ range -> getRangeString ( ) ) ; $ this -> addOptionalHeader ( $ headers , Resources :: CONTENT_LENGTH , $ range -> getLength ( ) ) ; $ this -> addOptionalHeader ( $ headers , Resources :: X_MS_WRITE , 'Update' ) ; $ this -> addOptionalHeader ( $ headers , Resources :: CONTENT_MD5 , $ options -> getContentMD5 ( ) ) ; $ this -> addOptionalQueryParam ( $ queryParams , Resources :: QP_COMP , 'range' ) ; return $ this -> sendAsync ( $ method , $ headers , $ queryParams , $ postParams , $ path , Resources :: STATUS_CREATED , $ stream , $ options ) ; }
Creates promise to write range of bytes to a file. Range can be at most
4MB in length.

@param  string                          $share   The share name.
@param  string                          $path    The path of the file.
@param  string|resource|StreamInterface $content The content to be uploaded.
@param  Range                           $range   The range in the file to
be put.
@param  PutFileRangeOptions|null        $options The optional parameters.

@return \GuzzleHttp\Promise\PromiseInterface

@see https://docs.microsoft.com/en-us/rest/api/storageservices/put-range
Creates promise to write range of bytes to a file . Range can be at most 4MB in length .