public function uploadLargeFile(array $options)
    {
        if (substr($options['FileName'], 0, 1) === '/') {
            $options['FileName'] = ltrim($options['FileName'], '/');
        }

        //if last char of path is not a "/" then add a "/"
        if (substr($options['FilePath'], -1) != '/') {
            $options['FilePath'] = $options['FilePath'].'/';
        }

        if (!isset($options['BucketId']) && isset($options['BucketName'])) {
            $options['BucketId'] = $this->getBucketIdFromName($options['BucketName']);
        }

        if (!isset($options['FileContentType'])) {
            $options['FileContentType'] = 'b2/x-auto';
        }

        $this->authorizeAccount();

        // 1) b2_start_large_file, (returns fileId)
        $start = $this->startLargeFile($options['FileName'], $options['FileContentType'], $options['BucketId']);

        // 2) b2_get_upload_part_url for each thread uploading (takes fileId)
        $url = $this->getUploadPartUrl($start['fileId']);

        // 3) b2_upload_part for each part of the file
        $parts = $this->uploadParts($options['FilePath'].$options['FileName'], $url['uploadUrl'], $url['authorizationToken']);

        $sha1s = [];

        foreach ($parts as $part) {
            $sha1s[] = $part['contentSha1'];
        }

        // 4) b2_finish_large_file.
        return $this->finishLargeFile($start['fileId'], $sha1s);
    }
public function uploadLargeFile(array $options)
    {
        if (substr($options['FileName'], 0, 1) === '/') {
            $options['FileName'] = ltrim($options['FileName'], '/');
        }

        //if last char of path is not a "/" then add a "/"
        if (substr($options['FilePath'], -1) != '/') {
            $options['FilePath'] = $options['FilePath'].'/';
        }

        if (!isset($options['BucketId']) && isset($options['BucketName'])) {
            $options['BucketId'] = $this->getBucketIdFromName($options['BucketName']);
        }

        if (!isset($options['FileContentType'])) {
            $options['FileContentType'] = 'b2/x-auto';
        }

        $this->authorizeAccount();

        // 1) b2_start_large_file, (returns fileId)
        $start = $this->startLargeFile($options['FileName'], $options['FileContentType'], $options['BucketId']);

        // 2) b2_get_upload_part_url for each thread uploading (takes fileId)
        $url = $this->getUploadPartUrl($start['fileId']);

        // 3) b2_upload_part for each part of the file
        $parts = $this->uploadParts($options['FilePath'].$options['FileName'], $url['uploadUrl'], $url['authorizationToken']);

        $sha1s = [];

        foreach ($parts as $part) {
            $sha1s[] = $part['contentSha1'];
        }

        // 4) b2_finish_large_file.
        return $this->finishLargeFile($start['fileId'], $sha1s);
    }
public function uploadLargeFile ( array $ options ) { if ( substr ( $ options [ 'FileName' ] , 0 , 1 ) === '/' ) { $ options [ 'FileName' ] = ltrim ( $ options [ 'FileName' ] , '/' ) ; } //if last char of path is not a "/" then add a "/" if ( substr ( $ options [ 'FilePath' ] , - 1 ) != '/' ) { $ options [ 'FilePath' ] = $ options [ 'FilePath' ] . '/' ; } if ( ! isset ( $ options [ 'BucketId' ] ) && isset ( $ options [ 'BucketName' ] ) ) { $ options [ 'BucketId' ] = $ this -> getBucketIdFromName ( $ options [ 'BucketName' ] ) ; } if ( ! isset ( $ options [ 'FileContentType' ] ) ) { $ options [ 'FileContentType' ] = 'b2/x-auto' ; } $ this -> authorizeAccount ( ) ; // 1) b2_start_large_file, (returns fileId) $ start = $ this -> startLargeFile ( $ options [ 'FileName' ] , $ options [ 'FileContentType' ] , $ options [ 'BucketId' ] ) ; // 2) b2_get_upload_part_url for each thread uploading (takes fileId) $ url = $ this -> getUploadPartUrl ( $ start [ 'fileId' ] ) ; // 3) b2_upload_part for each part of the file $ parts = $ this -> uploadParts ( $ options [ 'FilePath' ] . $ options [ 'FileName' ] , $ url [ 'uploadUrl' ] , $ url [ 'authorizationToken' ] ) ; $ sha1s = [ ] ; foreach ( $ parts as $ part ) { $ sha1s [ ] = $ part [ 'contentSha1' ] ; } // 4) b2_finish_large_file. return $ this -> finishLargeFile ( $ start [ 'fileId' ] , $ sha1s ) ; }
Uploads a large file using b2 large file proceedure.

@param array $options

@throws \Exception
@throws GuzzleException

@return \BackblazeB2\File
Uploads a large file using b2 large file proceedure .