public function createFileFromContentAsync(
        $share,
        $path,
        $content,
        CreateFileFromContentOptions $options = null
    ) {
        $stream = Psr7\stream_for($content);
        $size = $stream->getSize();

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

        //create the file first
        $promise = $this->createFileAsync($share, $path, $size, $options);

        //then upload the content
        $range = new Range(0, $size - 1);
        $putOptions = new PutFileRangeOptions($options);
        $useTransactionalMD5 = $options->getUseTransactionalMD5();
        if ($size > Resources::MB_IN_BYTES_4) {
            return $promise->then(function ($response) use (
                $share,
                $path,
                $stream,
                $range,
                $putOptions,
                $useTransactionalMD5
            ) {
                return $this->multiplePutRangeConcurrentAsync(
                    $share,
                    $path,
                    $stream,
                    $range,
                    $putOptions,
                    $useTransactionalMD5
                );
            }, null);
        } else {
            return $promise->then(function ($response) use (
                $share,
                $path,
                $stream,
                $range,
                $putOptions
            ) {
                return $this->putFileRangeAsync(
                    $share,
                    $path,
                    $stream,
                    $range,
                    $putOptions
                );
            }, null);
        }
    }
public function createFileFromContentAsync(
        $share,
        $path,
        $content,
        CreateFileFromContentOptions $options = null
    ) {
        $stream = Psr7\stream_for($content);
        $size = $stream->getSize();

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

        //create the file first
        $promise = $this->createFileAsync($share, $path, $size, $options);

        //then upload the content
        $range = new Range(0, $size - 1);
        $putOptions = new PutFileRangeOptions($options);
        $useTransactionalMD5 = $options->getUseTransactionalMD5();
        if ($size > Resources::MB_IN_BYTES_4) {
            return $promise->then(function ($response) use (
                $share,
                $path,
                $stream,
                $range,
                $putOptions,
                $useTransactionalMD5
            ) {
                return $this->multiplePutRangeConcurrentAsync(
                    $share,
                    $path,
                    $stream,
                    $range,
                    $putOptions,
                    $useTransactionalMD5
                );
            }, null);
        } else {
            return $promise->then(function ($response) use (
                $share,
                $path,
                $stream,
                $range,
                $putOptions
            ) {
                return $this->putFileRangeAsync(
                    $share,
                    $path,
                    $stream,
                    $range,
                    $putOptions
                );
            }, null);
        }
    }
public function createFileFromContentAsync ( $ share , $ path , $ content , CreateFileFromContentOptions $ options = null ) { $ stream = Psr7 \ stream_for ( $ content ) ; $ size = $ stream -> getSize ( ) ; if ( $ options == null ) { $ options = new CreateFileFromContentOptions ( ) ; } //create the file first $ promise = $ this -> createFileAsync ( $ share , $ path , $ size , $ options ) ; //then upload the content $ range = new Range ( 0 , $ size - 1 ) ; $ putOptions = new PutFileRangeOptions ( $ options ) ; $ useTransactionalMD5 = $ options -> getUseTransactionalMD5 ( ) ; if ( $ size > Resources :: MB_IN_BYTES_4 ) { return $ promise -> then ( function ( $ response ) use ( $ share , $ path , $ stream , $ range , $ putOptions , $ useTransactionalMD5 ) { return $ this -> multiplePutRangeConcurrentAsync ( $ share , $ path , $ stream , $ range , $ putOptions , $ useTransactionalMD5 ) ; } , null ) ; } else { return $ promise -> then ( function ( $ response ) use ( $ share , $ path , $ stream , $ range , $ putOptions ) { return $ this -> putFileRangeAsync ( $ share , $ path , $ stream , $ range , $ putOptions ) ; } , null ) ; } }
Creates a promise to create a file from a provided content.

@param  string                            $share   the share name
@param  string                            $path    the path of the file
@param  StreamInterface|resource|string   $content the content used to
create the file
@param  CreateFileFromContentOptions|null $options optional parameters

@return \GuzzleHttp\Promise\PromiseInterface
Creates a promise to create a file from a provided content .