{"id":18076597,"url":"https://github.com/ggeorgovassilis/ssh-file-uploader","last_synced_at":"2025-04-05T19:45:36.243Z","repository":{"id":9441906,"uuid":"11318489","full_name":"ggeorgovassilis/ssh-file-uploader","owner":"ggeorgovassilis","description":null,"archived":false,"fork":false,"pushed_at":"2013-07-11T09:47:36.000Z","size":116,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-02-11T18:05:20.939Z","etag":null,"topics":["datatransfer","networking","scp","ssh"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ggeorgovassilis.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-07-10T17:14:48.000Z","updated_at":"2018-03-21T11:25:52.000Z","dependencies_parsed_at":"2022-09-07T20:22:36.932Z","dependency_job_id":null,"html_url":"https://github.com/ggeorgovassilis/ssh-file-uploader","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ggeorgovassilis%2Fssh-file-uploader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ggeorgovassilis%2Fssh-file-uploader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ggeorgovassilis%2Fssh-file-uploader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ggeorgovassilis%2Fssh-file-uploader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ggeorgovassilis","download_url":"https://codeload.github.com/ggeorgovassilis/ssh-file-uploader/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247393540,"owners_count":20931810,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["datatransfer","networking","scp","ssh"],"created_at":"2024-10-31T11:10:32.885Z","updated_at":"2025-04-05T19:45:36.226Z","avatar_url":"https://github.com/ggeorgovassilis.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"ssh-file-uploader\n=================\n\nSsh file uploader v1.0\n----------------------------\n\nThis Java programme uploads large files with scp and ssh over unreliable internet connections. \nIt does this by splitting the large file into small parts and uploading them in parallel over multiple scp connections.\nWhen an upload stalls, it is repeated for that part.\n\nUsage:\n----------------------------\n\nSSHFileUploader path_to_configuration file_to_upload path_on_remote_server\n\nExample:\n----------------------------\n\njava -jar sshfileuploader.jar /home/jack/tools/sshfileuploader.properties ./photos/backup.zip /mnt/raid/backups/2013-06-13\n\nExample configuration file:\n\n# Start every that many milliseconds the next upload or restart a failed upload\nINTERVAL=1000\n\n# Wait at least that many milliseconds after starting a new upload before starting another one \nPAUSE_AFTER_NEW_PROCSS=500\n\n# Maximum number of parallel uploads\nMAXPROCESSES=2\n\n# Maximum size of file part to upload in kilobytes. Rule of thumb: the more reliable the connection the larger the value you can pick.\n# Chosing large values on bad connections will stall the upload and result in very low speed.\nPARTSIZE_KB=64\n\n# Fail at most that many times when merging parts at the target server\nMAX_FAILURES=20\n\n# Location of scp binary\nscp=/usr/bin/scp\n\n# Location of ssh binary\nssh=/usr/bin/ssh\n\n# SSH login to use at target server for scp and merging\nuserName=sshuser\n\n# Name or IP of server to upload files to\nserver=ssh.example.com\n\n# Location for temporary file space\ntmpDir=/tmp\n\n# Logging: normal, quiet\nlogging=normal\n\n# SSH / SCP arguments\nsshArgs=-o ConnectTimeout=30\n\nSystem requirements\n--------------------------------\n\nJava 1.6\nscp\nssh\n\n\nFAQ\n-------------------------------\n\nQ: Can I specify the password to use for ssh ?\nA: No. SSH must be set up to allow non-interactive login (i.e. keyfile)\n\nQ: What is the best setting for MAXPROCESSES and PARTSIZE_KB ?\nA: That depends on your connection. Unreliable connections will require smaller PARTSIZE_KBs, a slow ssh handshake will benefit from\nlarger MAXPROCESSES. The best thing is to try it out.\n\nQ: It hangs\nA: Assuming that your network connection to the remote server is not completely dead, make sure you have disabled ControlMaster in\nssh_config. If enabled, it will simulate multiple ssh connections over the same TCP connection which defies the purpose of this programme.\n\nQ: Merging doesn't seem to work\nA: You need a bash on the remote server\n\nAbout\n-------------------------------\n\nAuthor: George Georgovassilis\nhttps://github.com/ggeorgovassilis/ssh-file-uploader\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fggeorgovassilis%2Fssh-file-uploader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fggeorgovassilis%2Fssh-file-uploader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fggeorgovassilis%2Fssh-file-uploader/lists"}