# Backblaze Backup Tool This is a tool to backup files and directories to Backblaze. ## Prerequisites - Go 1.16 or higher - Backblaze account with a bucket created - Environment variables `BB_ID` and `BB_KEY` set with your Backblaze account ID and application key respectively ## Building the Application You can build the application using the provided Makefile. ### On Linux: ```bash make rebuild ``` ### On Windows: You will need to have make installed. If you don't have it, you can install it through Chocolatey: ```bash choco install make ``` Then you can run the same command as on Linux: ```bash make rebuild ``` This will create a binary in the bin directory. ## Running the Application You can run the application directly from the command line. Here's how to do it: ```bash ./bin/backblaze-backup --bucket "your-bucket-name" --dir "/path/to/directory" ``` Or if you want to upload a single file: ```bash ./bin/backblaze-backup --bucket "your-bucket-name" --file "/path/to/file" ``` You can also use the **`local_run`** command in the Makefile to run the application with a test directory and bucket: ```bash make local_run DIR="/home/user/test-upload" BUCKET="my-test-bucket" ``` This will run the application with the directory **/home/user/test-upload** and the bucket **my-test-bucket**. ## Flags --bucket: The name of your Backblaze bucket --dir: The absolute path of the directory you want to upload to Backblaze --file: The absolute path of the file you want to upload to Backblaze Note: You must select just one option, dir or file. Please replace `"your-bucket-name"`, `"/path/to/directory"`, and `"/path/to/file"` with your actual bucket name and paths. ## Environment Variables The application uses the following environment variables: - **BB_ID:** Your Backblaze account ID - **BB_KEY:** Your Backblaze application key You can set these variables in your environment, or you can use a **.env** file in the root directory of the project. If the **BACKBLAZE_ENV** environment variable is set to dev, the application will load the **.env** file. ## Syncing with Backblaze The application uses the Sync method of the BackBlaze service to sync files or directories to Backblaze. If there's an error during the sync, the application will log the error and exit.