protected function sftpTransport(ServiceRequestContainer $service, string $account): FunctionsInterface
    {
        $this->set('_account', $account)
                 ->set('_sftp', $service->Sftp)
                     ->set('_persist', $service->Persistence)
                         ->set('_localCacheFilePath', $this->get('localCacheFilePath'))
                             ->set('_remoteFilePath', $service->Database->viewData['remoteFilePath'])
                                 ->set('_remoteDirectoryPath', $service->Database->viewData['remoteDirectoryPath'])
                                     ->set('_createRemoteDirectory', $service->Database->viewData['sftpCreateRemoteDirectory'])
                                         ->set('_accountSettings', $service->ConfigurationVault->openVaultFile('account', $account)->all())
                                             ->set('_localFileSize', (file_exists($this->get('_localCacheFilePath')) ? filesize($this->get('_localCacheFilePath')) : 0));

        $this->get('_sftp')->connect($this->get('_accountSettings'));

        return $this->sftpCreateDirectory()->sftpUploadFile()->sftpRecordFileSizes()->sftpCompareFileSizes();
    }