public function insertLarge($bucketId, $filePath, $fileName)
    {
        $this->ensureAuthorized();
        // start large file:
        $startResponse = $this->client->b2StartLargeFile($this->apiURL, $this->token, $bucketId, $fileName);
        $fileId = $startResponse->get("fileId");
        try{
            // get upload url for part file:
            $uploadUrlResponse = $this->client->b2GetUploadPartURL($this->apiURL, $this->token, $fileId);
            // upload large file:
            $responses = $this->client->b2UploadPart($uploadUrlResponse->get("uploadUrl"), $uploadUrlResponse->get("authorizationToken"), $filePath);
            $sha1s = [];
            foreach($responses as $response){
                $sha1s[] = $response->get("contentSha1");
            }
            // finish large file
            $response = $this->client->b2FinishLargeFile($this->apiURL, $this->token, $fileId, $sha1s);
            if($response->isOk()){
                return $response->getData();
            }
        }catch (B2Exception $exception){
            $this->client->b2CancelLargeFile($this->apiURL, $this->token, $fileId);
        }
        return false;
    }