diff options
Diffstat (limited to 'content/blog/2023-06-28-backblaze-b2.md')
-rw-r--r-- | content/blog/2023-06-28-backblaze-b2.md | 140 |
1 files changed, 66 insertions, 74 deletions
diff --git a/content/blog/2023-06-28-backblaze-b2.md b/content/blog/2023-06-28-backblaze-b2.md index 3f2ed48..fd93abd 100644 --- a/content/blog/2023-06-28-backblaze-b2.md +++ b/content/blog/2023-06-28-backblaze-b2.md @@ -7,82 +7,77 @@ draft = false # Overview -Backblaze [B2 Cloud -Storage](https://www.backblaze.com/b2/cloud-storage.html) is an -inexpensive and reliable on-demand cloud storage and backup solution. +Backblaze [B2 Cloud Storage](https://www.backblaze.com/b2/cloud-storage.html) is +an inexpensive and reliable on-demand cloud storage and backup solution. -The service starts at \$5/TB/month (\$0.005/GB/month) with a download -rate of \$0.01/GB/month. +The service starts at $5/TB/month ($0.005/GB/month) with a download rate of +$0.01/GB/month. However, there are free tiers: -- The first 10 GB of storage is free. -- The first 1 GB of data downloaded each day is free. -- Class A transactions are free. -- The first 2500 Class B transactions each day are free. -- The first 2500 Class C transactions each day are free. +- The first 10 GB of storage is free. +- The first 1 GB of data downloaded each day is free. +- Class A transactions are free. +- The first 2500 Class B transactions each day are free. +- The first 2500 Class C transactions each day are free. -You can see which API calls fall into categories A, B, or C here: -[Pricing Organized by API +You can see which API calls fall into categories A, B, or C here: [Pricing +Organized by API Calls](https://www.backblaze.com/b2/b2-transactions-price.html). -For someone like me, who wants an offsite backup of their server\'s -`/home/` directory and various other server configs that fall -under 10 GB total, Backblaze is a great solution from a financial -perspective. +For someone like me, who wants an offsite backup of their server's `/home/` +directory and various other server configs that fall under 10 GB total, +Backblaze is a great solution from a financial perspective. # Create An Account -To start with Backblaze, you\'ll need to [create a free -account](https://www.backblaze.com/b2/sign-up.html) - no payment method -is required to sign up. +To start with Backblaze, you'll need to [create a free +account](https://www.backblaze.com/b2/sign-up.html) - no payment method is +required to sign up. -Once you have an account, you can test out the service with their web -GUI, their mobile app, or their CLI tool. I\'m going to use the CLI tool -below to test a file upload and then sync an entire directory to my -Backblaze bucket. +Once you have an account, you can test out the service with their web GUI, their +mobile app, or their CLI tool. I'm going to use the CLI tool below to test a +file upload and then sync an entire directory to my Backblaze bucket. # Create a Bucket -Before you can start uploading, you need to create a bucket. If you\'re -familiar with other object storage services, this will feel familiar. If -not, it\'s pretty simple to create one. +Before you can start uploading, you need to create a bucket. If you're familiar +with other object storage services, this will feel familiar. If not, it's +pretty simple to create one. As their webpage says: -> A bucket is a container that holds files that are uploaded into B2 -> Cloud Storage. The bucket name must be globally unique and must have a -> minimum of 6 characters. A limit of 100 buckets may be created per -> account. An unlimited number of files may be uploaded into a bucket. +> A bucket is a container that holds files that are uploaded into B2 Cloud +> Storage. The bucket name must be globally unique and must have a minimum of 6 +> characters. A limit of 100 buckets may be created per account. An unlimited +> number of files may be uploaded into a bucket. -Once you click the `Create a Bucket` button on their webpage -or mobile app, you need to provide the following: +Once you click the `Create a Bucket` button on their webpage or mobile app, you +need to provide the following: -- Bucket Unique Name -- Files in Bucket are: `Private` or `Public` -- Default Encryption: `Disable` or `Enable` -- Object Lock: `Disable` or `Enable` +- Bucket Unique Name +- Files in Bucket are: `Private` or `Public` +- Default Encryption: `Disable` or `Enable` +- Object Lock: `Disable` or `Enable` -For my bucket, I created a private bucket with encryption enabled and -object lock disabled. +For my bucket, I created a private bucket with encryption enabled and object +lock disabled. -Once your bucket is created, you can test the upload/download feature on -their web GUI or mobile app! At this point, you have a fully functional -bucket and account. +Once your bucket is created, you can test the upload/download feature on their +web GUI or mobile app! At this point, you have a fully functional bucket and +account. # Linux CLI Tool ## Installation -To install the `b2` CLI tool, you\'ll need to download it -from the [CLI -Tools](https://www.backblaze.com/docs/cloud-storage-command-line-tools) -page. I recommend copying the URL from the link that says -`Linux` and using wget to download it, as shown below. +To install the `b2` CLI tool, you'll need to download it from the [CLI +Tools](https://www.backblaze.com/docs/cloud-storage-command-line-tools) page. I +recommend copying the URL from the link that says `Linux` and using wget to +download it, as shown below. -Once downloaded, make the file executable and move it to a location on -your `$PATH`, so that you can execute that command from -anywhere on the machine. +Once downloaded, make the file executable and move it to a location on your +`$PATH`, so that you can execute that command from anywhere on the machine. ```sh wget <b2_cli_url> @@ -93,12 +88,10 @@ mv b2_linux /usr/bin/b2 ## Log In The first step after installation is to log in. To do this, execute the -following command and provide your `<applicationKeyId>` and -`<applicationKey>`. +following command and provide your `<applicationKeyId>` and `<applicationKey>`. -If you don\'t want to provide these values in the command itself, you -can simply execute the base command and it will request them in an -interactive prompt. +If you don't want to provide these values in the command itself, you can simply +execute the base command and it will request them in an interactive prompt. ```sh # if you want to provide the keys directly: @@ -110,9 +103,9 @@ b2 authorize-account ## Upload a Test File -In order to test the functionality of the CLI tool, I\'ll start by -uploading a single test file to the bucket I created above. We can do -this with the `upload_file` function. +In order to test the functionality of the CLI tool, I'll start by uploading a +single test file to the bucket I created above. We can do this with the +`upload_file` function. The command is issued as follows: @@ -126,8 +119,8 @@ In my situation, I executed the following command with my username. b2 upload_file my_unique_bucket /home/<user>/test.md test.md ``` -To confirm that the file was uploaded successfully, list the files in -your bucket: +To confirm that the file was uploaded successfully, list the files in your +bucket: ```sh b2 ls <bucket_name> @@ -139,9 +132,9 @@ test.md ## Sync a Directory -If you have numerous files, you can use the `sync` function -to perform functionality similar to `rsync`, where you can -check what\'s in your bucket and sync anything that is new or modified. +If you have numerous files, you can use the `sync` function to perform +functionality similar to `rsync`, where you can check what's in your bucket and +sync anything that is new or modified. The command is issued as follows: @@ -149,8 +142,8 @@ The command is issued as follows: b2 sync <source file location> <B2 bucket destination> ``` -In my case, I can sync my user\'s entire home directory to my bucket -without specifying any of the files directly: +In my case, I can sync my user's entire home directory to my bucket without +specifying any of the files directly: ```sh b2 sync /home/<user>/ "b2://<bucketName>/home/<user>" @@ -160,22 +153,21 @@ b2 sync /home/<user>/ "b2://<bucketName>/home/<user>" ## Timing of Updates to the Web GUI -When performing actions over a bucket, there is a slight delay in the -web GUI when inspecting a bucket or its file. Note that simple actions -such as uploading or deleting files may have a delay of a few minutes up -to 24 hours. In my experience (\<10 GB and \~20,000 files), any actions -took only a few minutes to update across clients. +When performing actions over a bucket, there is a slight delay in the web GUI +when inspecting a bucket or its file. Note that simple actions such as uploading +or deleting files may have a delay of a few minutes up to 24 hours. In my +experience (\<10 GB and ~20,000 files), any actions took only a few minutes to +update across clients. ## Symlinks Note that symlinks are resolved by b2, so if you have a link from -`/home/<user>/nas-storage` that symlinks out to a -`/mnt/nas-storage` folder that has 10TB of data, -`b2` will resolve that link and start uploading all 10TB of +`/home/<user>/nas-storage` that symlinks out to a `/mnt/nas-storage` folder that +has 10TB of data, `b2` will resolve that link and start uploading all 10TB of data linked within the folder. -If you\'re not sure if you have any symlinks, a symlink will look like -this (note the `->` symbol): +If you're not sure if you have any symlinks, a symlink will look like this +(note the `->` symbol): ```sh > ls -lha |