{"id":29645030,"url":"https://github.com/virtualzone/onedrive-uploader","last_synced_at":"2025-07-22T01:11:08.707Z","repository":{"id":40717283,"uuid":"394289737","full_name":"virtualzone/onedrive-uploader","owner":"virtualzone","description":"Command-line utility for uploading files to OneDrive.","archived":false,"fork":false,"pushed_at":"2025-05-23T04:29:37.000Z","size":319,"stargazers_count":126,"open_issues_count":7,"forks_count":24,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-19T07:27:43.675Z","etag":null,"topics":["cloud-storage","go","golang","linux","linux-onedrive","macos","macos-onedrive","microsoft-onedrive","microsoft-onedrive-client","onedrive","onedrive-api","onedrive-backup","onedrive-cli","onedrive-client","onedrive-clients","onedrive-commandline","onedrive-sdk","onedrive-utility"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/virtualzone.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":"virtualzone"}},"created_at":"2021-08-09T12:51:02.000Z","updated_at":"2025-07-01T00:35:47.000Z","dependencies_parsed_at":"2024-03-26T13:29:19.311Z","dependency_job_id":"9a82e18a-9285-4502-90a3-bc2e40b942dd","html_url":"https://github.com/virtualzone/onedrive-uploader","commit_stats":null,"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"purl":"pkg:github/virtualzone/onedrive-uploader","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/virtualzone%2Fonedrive-uploader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/virtualzone%2Fonedrive-uploader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/virtualzone%2Fonedrive-uploader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/virtualzone%2Fonedrive-uploader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/virtualzone","download_url":"https://codeload.github.com/virtualzone/onedrive-uploader/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/virtualzone%2Fonedrive-uploader/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266405860,"owners_count":23923625,"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","status":"online","status_checked_at":"2025-07-21T11:47:31.412Z","response_time":64,"last_error":null,"robots_txt_status":null,"robots_txt_updated_at":null,"robots_txt_url":"https://github.com/robots.txt","online":true,"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":["cloud-storage","go","golang","linux","linux-onedrive","macos","macos-onedrive","microsoft-onedrive","microsoft-onedrive-client","onedrive","onedrive-api","onedrive-backup","onedrive-cli","onedrive-client","onedrive-clients","onedrive-commandline","onedrive-sdk","onedrive-utility"],"created_at":"2025-07-22T01:11:08.059Z","updated_at":"2025-07-22T01:11:08.699Z","avatar_url":"https://github.com/virtualzone.png","language":"Go","funding_links":["https://github.com/sponsors/virtualzone"],"categories":["Go"],"sub_categories":[],"readme":"# OneDrive Uploader\n[![](https://img.shields.io/github/v/release/virtualzone/onedrive-uploader)](https://github.com/virtualzone/onedrive-uploader/releases)\n[![](https://img.shields.io/github/release-date/virtualzone/onedrive-uploader)](https://github.com/virtualzone/onedrive-uploader/releases)\n[![](https://img.shields.io/github/actions/workflow/status/virtualzone/onedrive-uploader/test.yml?branch=main)](https://github.com/virtualzone/onedrive-uploader/actions)\n[![Go Report Card](https://goreportcard.com/badge/github.com/virtualzone/onedrive-uploader)](https://goreportcard.com/report/github.com/virtualzone/onedrive-uploader)\n[![](https://img.shields.io/github/license/virtualzone/onedrive-uploader)](https://github.com/virtualzone/onedrive-uploader/blob/master/LICENSE)\n\nCommand line (CLI) utility for uploading files to Microsoft OneDrive using the Microsoft Graph REST API.\n\n## Features\n* Upload, download and delete files\n* Create and delete directories\n* List folder contents\n* Get information (including SHA1 and SHA256 hashes) for drive items\n* Supports \"special folders\" (such as App Folder / App Root)\n* Pre-compiled binaries on Linux, MacOS and Windows\n\n![](https://raw.githubusercontent.com/virtualzone/onedrive-uploader/main/res/progress.gif)\n\n## Getting started\n\n### 1. Create an Azure Application\nOneDrive Uploader requires an application to be registered with Microsoft. This application is not exposed anywhere. It just serves as a means to authenticate access to your OneDrive with specified permissions.\n\n1. Log in to the [Microsoft Azure Portal](https://portal.azure.com/).\n1. Navigate to \"App registrations\".\n1. Create a new application with supported account type \"Accounts in any organizational directory (Any Azure AD directory - Multitenant) and personal Microsoft accounts (e.g. Skype, Xbox)\" and the following Web redirect URL: http://localhost:53682/\n1. Copy the Application (client) ID.\n1. Navigate to \"Certificates \u0026 secrets\", create a new Client secret and copy the Secret Value (*not* the ID).\n1. Navigate to \"API permissions\", click \"Add permission\", choose \"Microsoft Graph\", select \"Delegated\". Then search and add the required permissions:\n    1. Access to App Folder only: ```Files.ReadWrite.AppFolder, offline_access, User.Read```\n    1. Access to entire OneDrive: ```Files.Read, Files.ReadWrite, Files.Read.All, Files.ReadWrite.All, offline_access, User.Read```\n\n### 2. Download the binary\nDownload the appropriate binary for your operating system and architecture from the [Releases page](https://github.com/virtualzone/onedrive-uploader/releases) and make it executable.\n\nYou can use the following one-liner to perform the necessary steps on Linux and MacOS:\n```\ncurl -s -L https://git.io/JRie0 | bash\n```\n\nOn MacOS with [Homebrew](https://brew.sh) installed:\n```\nbrew install virtualzone/tap/onedrive-uploader\n```\n\nIf you want to build the binaries from source instead, clone the repository and execute ```make```. This requires Go to be installed.\n```\ngit clone https://github.com/virtualzone/onedrive-uploader.git\ncd onedrive-uploader\nmake\n```\n\n### 3. Configuration \u0026 Login \nRun the following command to create the configuration file:\n```\nonedrive-uploader config\n```\n\nAfter that, execute the following command to log in with your OneDrive account:\n```\nonedrive-uploader login\n```\n\nFor headless machines you must perform the actual login on a computer *with* a web browser. To do this, you can...\n* ...either run the ```config``` and ```login``` commands on another computer with a web browser and then copy the ```config.json``` to the headless computer after having logged in\n* ...or forward port 53682 from your computer with a web brower to your headless machine, e.g. by using SSH: ```ssh -L 53682:headless_ip:53682 user@headless_ip```\n* ...or use the ```curl``` command with fallback url\n\nThe configuration file is stored in the following directory (if not specified otherwise using the ```-c``` parameter):\n\n* Linux: ```${HOME}/.config/onedrive-uploader```\n* MacOS: ```${HOME}/Library/Application Support/onedrive-uploader```\n* Windows: ```${APPDATA}/onedrive-uploader```\n\n## Commands and example usage\nCreate a new remote directory named \"test\":\n```\nonedrive-uploader mkdir test\n```\n\nCreate a new remote directory named \"test2\" below the \"test\" folder:\n```\nonedrive-uploader mkdir test/test2\n```\n\nList contents of the \"test\" folder:\n```\nonedrive-uploader ls test\n```\n\nUpload local file \"image.jpg\" to the \"test\" folder:\n```\nonedrive-uploader upload /tmp/image.jpg test\n```\n\nDownload \"notes.docx\" from the root directory:\n```\nonedrive-uploader download /notes.docx /tmp\n```\n\nDelete \"notes.docx\" from the root directory:\n```\nonedrive-uploader rm /notes.docx\n```\n\nGet information about file \"notes.docx\" in folder \"test\":\n```\nonedrive-uploader info /test/notes.docx\n```\n\nGet SHA1 hash for file \"notes.docx\" in folder \"test\":\n```\nonedrive-uploader sha1 /test/notes.docx\n```\n\nGet SHA256 hash for file \"notes.docx\" in folder \"test\":\n```\nonedrive-uploader sha256 /test/notes.docx\n```\n\nPrint help and available commands:\n```\nonedrive-uploader help\n```\n\nUse config file at a specific path:\n```\nonedrive-uploader -c /path/to/config.json mkdir test\n```\n\n### Important note for users of version \u003c 0.6\nThe configuration file format and path has changed as of version 0.6.\n\nPlease run the following command to migrate your existing configuration file to the new file format and location after having installed the latest version of OneDrive Uploader:\n\n```\nonedrive-uploader migrate /path/to/existing/config.json\n```\n\nYou can safely delete your existing ```config.json``` and ```secret.json``` files after the migration has been performed successfully.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvirtualzone%2Fonedrive-uploader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvirtualzone%2Fonedrive-uploader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvirtualzone%2Fonedrive-uploader/lists"}