{"id":20537600,"url":"https://github.com/jonathangiles/cloud-sync","last_synced_at":"2026-03-08T01:32:33.531Z","repository":{"id":96999937,"uuid":"122884253","full_name":"JonathanGiles/cloud-sync","owner":"JonathanGiles","description":"Java application that runs in background to automatically sync backup sets (from local file system) up to cloud storage containers (e.g. on Azure)","archived":false,"fork":false,"pushed_at":"2018-03-04T23:16:40.000Z","size":29,"stargazers_count":11,"open_issues_count":1,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-14T07:45:53.172Z","etag":null,"topics":["azure","backup","java"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JonathanGiles.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-02-25T22:36:54.000Z","updated_at":"2025-04-02T04:47:33.000Z","dependencies_parsed_at":"2024-03-08T13:52:00.900Z","dependency_job_id":null,"html_url":"https://github.com/JonathanGiles/cloud-sync","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/JonathanGiles/cloud-sync","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JonathanGiles%2Fcloud-sync","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JonathanGiles%2Fcloud-sync/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JonathanGiles%2Fcloud-sync/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JonathanGiles%2Fcloud-sync/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JonathanGiles","download_url":"https://codeload.github.com/JonathanGiles/cloud-sync/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JonathanGiles%2Fcloud-sync/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30240897,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-08T00:58:18.660Z","status":"ssl_error","status_checked_at":"2026-03-08T00:55:48.608Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["azure","backup","java"],"created_at":"2024-11-16T00:41:44.190Z","updated_at":"2026-03-08T01:32:33.512Z","avatar_url":"https://github.com/JonathanGiles.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Cloud Sync\n\n## Introduction\nThis is a Java application (currently at proof of concept stage) to enable automated backup of files to the cloud. This\nhelps to prevent the impact of a 'digital blackhole' by silently transferring files from specified folders to a remote\nstorage container on a continuous basis. This application will never modify files on the local file system - it isn't a\ntwo-way sync tool like Dropbox. Information only flows from the local computer to the cloud, except when a backup is\nbeing restored from the cloud (and this will go into an empty directory and never overwrite files).\n\nWhen a file is added or modified on the local file system, and if that folder is within a backup set configured by you,\nthis will automatically be pushed into your private cloud store in an encrypted fashion. It won't be accessible to anyone \nelse. Similarly, when a file is deleted from your local file system, if it was previously uploaded to the cloud, it will \nthen be deleted and no longer backed up in the cloud.\n\nCurrently, this application supports syncing to Microsoft Azure, where files are stored in an encrypted fashion.\n\n## TODO\nAs noted, this application is a proof of concept. There are a number of important features that still do not exist. A \nhigh level summary of these features include:\n\n* At present there is only the backup engine. This means there is no way for a user to interact with the application.\nAn embedded web service, socket server, or similar needs to be created as a way for other software to interact with the\nbackup engine.\n\n* Once the API is exposed, a client-side UI needs to be developed (either as a JavaFX application or a website accessible\nthrough localhost).\n\n* There is a lot of missing API:\n  * Adding / removing / configuring backup sets\n  * Full and partial restoring of a backup set from the cloud to the local file system.\n  * Getting details of files stored in the cloud (total file size, file list, etc)\n  \n* The application should run as a background service on Windows / MacOS / Linux, so that it is always watching for \nchanges.\n\n## Usage\nAt present there is no user-friendliess at all in this application. To run the code as it is today, you must do the \nfollowing:\n \n1. Create an Azure Storage account (more details on how and what to do will come soon)\n2. Clone this repo onto local machine\n3. Ensure you have Maven installed and on path\n4. Create a config.json file in the root of the cloned directory, and add configuration along the following lines to it:\n    ```json\n    {\n      \"azureAccountName\": \"\u003cput Azure Storage account name here\u003e\",\n      \"azureAccountKey\": \"\u003cput Azure Storage account key here\u003e\",\n      \"backups\": [\n        {\n          \"name\": \"testone\",\n          \"root\": \"/Users/jonathan/backup/test1\"\n        },\n        {\n          \"name\": \"testonetwo\",\n          \"root\": \"/Users/jonathan/backup/test2\"\n        }\n      ]\n    }\n    ```\n5. Run the application using `mvn clean package exec:java`","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonathangiles%2Fcloud-sync","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjonathangiles%2Fcloud-sync","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonathangiles%2Fcloud-sync/lists"}