{"id":111560,"date":"2024-09-05T09:41:03","date_gmt":"2024-09-05T16:41:03","guid":{"rendered":"https:\/\/www.backblaze.com\/blog\/?p=111560"},"modified":"2024-09-13T12:46:07","modified_gmt":"2024-09-13T19:46:07","slug":"do-more-with-backblaze-b2-a-tour-of-the-backblaze-github-repositories","status":"publish","type":"post","link":"https:\/\/www.backblaze.com\/blog\/do-more-with-backblaze-b2-a-tour-of-the-backblaze-github-repositories\/","title":{"rendered":"Do More with Backblaze B2: A Tour of the Backblaze GitHub Repositories"},"content":{"rendered":"\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1440\" height=\"820\" src=\"https:\/\/www.backblaze.com\/blog\/wp-content\/uploads\/2024\/09\/bb-bh-Promote-Backblaze-Github.png\" alt=\"A decorative image showing a computer with the GitHub logo and the Backblaze logo superimposed on files. \" class=\"wp-image-111561\" srcset=\"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2024\/09\/bb-bh-Promote-Backblaze-Github.png 1440w, https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2024\/09\/bb-bh-Promote-Backblaze-Github-300x171.png 300w, https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2024\/09\/bb-bh-Promote-Backblaze-Github-1024x583.png 1024w, https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2024\/09\/bb-bh-Promote-Backblaze-Github-768x437.png 768w\" sizes=\"auto, (max-width: 1440px) 100vw, 1440px\" \/><\/figure>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>If you work with Backblaze B2, you\u2019re probably already aware of resources such as the <a href=\"https:\/\/github.com\/Backblaze\/b2-sdk-python\" target=\"_blank\" rel=\"noreferrer noopener\">Backblaze B2 Python SDK<\/a> and the <a href=\"https:\/\/github.com\/Backblaze\/B2_Command_Line_Tool\" target=\"_blank\" rel=\"noreferrer noopener\">Backblaze B2 Command Line Tool<\/a>, but did you know that there is also a <a href=\"https:\/\/github.com\/Backblaze\/terraform-provider-b2\" target=\"_blank\" rel=\"noreferrer noopener\">Terraform Provider for Backblaze B2<\/a>, an <a href=\"https:\/\/github.com\/Backblaze\/b2-sdk-java\" target=\"_blank\" rel=\"noreferrer noopener\">SDK for Java<\/a>, and a whole slew of <a href=\"https:\/\/github.com\/backblaze-b2-samples\" target=\"_blank\" rel=\"noreferrer noopener\">open source samples<\/a> showing how to integrate with Backblaze B2 from web browsers, serverless platforms, and more? Today, I\u2019ll take you on a quick tour of our open source SDKs, tools, and sample code, pointing out some interesting sights along the way.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Why open source?<\/h2>\n\n\n\n<p>We\u2019ve long been believers in open source code here at Backblaze, <a href=\"https:\/\/www.backblaze.com\/blog\/reed-solomon\/\" target=\"_blank\" rel=\"noreferrer noopener\">open sourcing our implementation of Reed-Solomon erasure coding back in 2015<\/a>, and, even before then, sharing our <a href=\"https:\/\/www.backblaze.com\/cloud-storage\/resources\/storage-pod\" target=\"_blank\" rel=\"noreferrer noopener\">Storage Pod designs<\/a> and, of course, <a href=\"https:\/\/www.backblaze.com\/cloud-storage\/resources\/hard-drive-test-data\" target=\"_blank\" rel=\"noreferrer noopener\">Drive Stats<\/a>, the statistics and insights based on our observations of the hard drives we operate in our data centers, including the raw metrics we collect from many thousands of hard drives, every day.<\/p>\n\n\n\n<p>While the Storage Pod designs and Drive Stats live here on the Backblaze website, we make our open source code available via two GitHub organizations:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/github.com\/backblaze\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/github.com\/backblaze<\/a> contains official, supported, Backblaze SDKs and other tools.<\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/backblaze-b2-samples\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/github.com\/backblaze-b2-samples<\/a> contains unsupported samples and demos showing how to integrate Backblaze B2 with a wide variety of services, frameworks, and applications.<\/li>\n<\/ul>\n\n\n\n<p>Let\u2019s take a closer look.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Official Backblaze SDKs and tools<\/h2>\n\n\n\n<p>You can use any of <a href=\"https:\/\/aws.amazon.com\/developer\/tools\/\">AWS\u2019 range of SDKs<\/a>, plus the <a href=\"https:\/\/aws.amazon.com\/cli\/\">AWS Command Line Interface (CLI)<\/a>, to access Backblaze B2 via its S3 Compatible API; just remember to <a href=\"https:\/\/www.backblaze.com\/docs\/cloud-storage-use-python-to-create-an-application#configure-aws-(python)\">configure the endpoint URL<\/a> as well as the access key ID and secret access key.<\/p>\n\n\n\n<p>Not every Backblaze B2 operation is accessible via the S3 Compatible API\u2014for example, application key management\u2014so we also support a range of open source SDKs for accessing Backblaze B2\u2019s Native API from a variety of programming languages:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>The <\/strong><a href=\"https:\/\/github.com\/Backblaze\/b2-sdk-python\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Backblaze B2 Python SDK<\/strong><\/a><strong>:<\/strong> This SDK provides access to the basic operations of the Native API, such as <code>list_buckets()<\/code> and <code>download_file_by_id()<\/code>, as well as a powerful <a href=\"https:\/\/b2-sdk-python.readthedocs.io\/en\/master\/api\/sync.html\" target=\"_blank\" rel=\"noreferrer noopener\"><code>Synchronizer<\/code><\/a> class that implements high performance, multi-threaded file copying between Backblaze B2 and local file storage.<\/li>\n\n\n\n<li><strong>The <\/strong><a href=\"https:\/\/github.com\/Backblaze\/b2-sdk-java\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Backblaze B2 Java SDK<\/strong><\/a><strong>:<\/strong> Although it doesn\u2019t include anything quite as sophisticated as the Python Synchronizer, the Java SDK does implement high-level functionality such as <a href=\"https:\/\/backblaze.github.io\/b2-sdk-java\/com\/backblaze\/b2\/client\/B2StorageClient.html#uploadLargeFile(com.backblaze.b2.client.structures.B2UploadFileRequest,java.util.concurrent.ExecutorService)\" target=\"_blank\" rel=\"noreferrer noopener\"><code>uploadLargeFile()<\/code><\/a>, which encapsulates all of the mechanics of a multi-threaded file upload in a single method call. We also use it internally at Backblaze in our production environment.\u00a0<\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/Backblaze\/blazer\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>blazer<\/strong><\/a><strong>, an open source Backblaze B2 SDK for Go (aka golang):<\/strong> We adopted blazer from its original author, Toby Burress, when he was no longer able to maintain it. We\u2019ve made a few improvements since taking it on, and we\u2019re looking at doing more with it.<\/li>\n<\/ul>\n\n\n\n<p>The Backblaze GitHub organization also contains a pair of tools built on the Python SDK:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>The <\/strong><a href=\"https:\/\/github.com\/Backblaze\/B2_Command_Line_Tool\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Backblaze B2 Command Line Tool<\/strong><\/a><strong> (also known as the B2 CLI): <\/strong>The B2 CLI gives easy access to all of the capabilities of Backblaze B2, from uploading and downloading files to managing buckets and application keys. <a href=\"https:\/\/www.backblaze.com\/blog\/command-like-a-pro-with-new-backblaze-b2-cli-enhancements\/\" target=\"_blank\" rel=\"noreferrer noopener\">Command Like a Pro with New Backblaze B2 CLI Enhancements<\/a> provides a summary of recent upgrades to the B2 CLI.<\/li>\n\n\n\n<li><strong>The <\/strong><a href=\"https:\/\/github.com\/Backblaze\/terraform-provider-b2\" target=\"_blank\" rel=\"noreferrer noopener\"><strong>Terraform Provider for Backblaze B2<\/strong><\/a><strong>: <\/strong>This tool allows you to manage Backblaze B2 resources, such as buckets, files, and application keys, from Terraform configurations. Although the provider is written in Go, it embeds the B2 Python SDK for accessing the Backblaze B2 API.<\/li>\n<\/ul>\n\n\n\n<p>The remaining repositories contain utilities and other code that we have published over the years, including our open source <a href=\"https:\/\/github.com\/Backblaze\/JavaReedSolomon\" target=\"_blank\" rel=\"noreferrer noopener\">Reed-Solomon erasure coding implementation<\/a> and a utility we wrote to support <a href=\"https:\/\/github.com\/Backblaze\/cassandra_lwt_migration_tool\" target=\"_blank\" rel=\"noreferrer noopener\">migrating a live Cassandra cluster<\/a> from one data center to another.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Backblaze sample and demo code<\/h2>\n\n\n\n<p>Our <a href=\"https:\/\/github.com\/backblaze-b2-samples\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/github.com\/backblaze-b2-samples<\/a> organization contains, at the time of writing, 34 repositories, demonstrating how to use Backblaze B2 in a wide variety of situations. We\u2019ve covered a few of them in past blog posts:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Build a conversational chatbot: <\/strong>Last month, <a href=\"https:\/\/www.backblaze.com\/blog\/how-to-build-your-own-llm-with-backblaze-b2-jupyter-notebook\/\" target=\"_blank\" rel=\"noreferrer noopener\">we walked through the example code<\/a> in r<a href=\"https:\/\/github.com\/backblaze-b2-samples\/ai-rag-examples\" target=\"_blank\" rel=\"noreferrer noopener\">etrieval-augmented generation (RAG) with Backblaze B2<\/a>, showing how you can build a conversational chatbot that answers questions based on content downloaded from a private Backblaze B2 Bucket.<\/li>\n\n\n\n<li><strong>Create an AI-powered media asset management (MAM) app: <\/strong>Earlier this year, we <a href=\"https:\/\/www.backblaze.com\/blog\/ai-video-understanding-in-your-apps-with-twelve-labs-and-backblaze\/\" target=\"_blank\" rel=\"noreferrer noopener\">showed how you can integrate Backblaze B2 with the Twelve Labs video understanding platform<\/a>, publishing the code for <a href=\"https:\/\/github.com\/backblaze-b2-samples\/b2-twelvelabs-example\" target=\"_blank\" rel=\"noreferrer noopener\">a simple AI-powered MAM<\/a>.<\/li>\n\n\n\n<li><strong>Set up a tiered media storage architecture: <\/strong>In 2022, we <a href=\"https:\/\/www.backblaze.com\/blog\/optimize-your-media-production-workflow-with-iconik-lucidlink-and-backblaze-b2\/\" target=\"_blank\" rel=\"noreferrer noopener\">explained how iconik, LucidLink, and Backblaze B2 complement each other in a tiered media storage architecture<\/a>. Several customers have deployed the open source <a href=\"https:\/\/github.com\/backblaze-b2-samples\/b2-iconik-plugin\" target=\"_blank\" rel=\"noreferrer noopener\">Backblaze B2 Storage Plugin for iconik<\/a>; one of those customers <a href=\"https:\/\/www.youtube.com\/watch?v=_qN3KDHvDqM\" target=\"_blank\" rel=\"noreferrer noopener\">joined me on stage at NAB Show 2023<\/a> to tell their story.<\/li>\n<\/ul>\n\n\n\n<p>As you explore the <a href=\"https:\/\/github.com\/backblaze-b2-samples\" target=\"_blank\" rel=\"noreferrer noopener\">https:\/\/github.com\/backblaze-b2-samples<\/a> organization, you\u2019ll also find repositories that have not yet been covered here on the Backblaze blog:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/github.com\/backblaze-b2-samples\/b2listen\" target=\"_blank\" rel=\"noreferrer noopener\">B2listen<\/a> allows you to forward Backblaze B2 Event Notifications to a service listening on a local URL. B2listen uses Cloudflare&#8217;s free <a href=\"https:\/\/developers.cloudflare.com\/cloudflare-one\/connections\/connect-networks\/do-more-with-tunnels\/trycloudflare\/\" target=\"_blank\" rel=\"noreferrer noopener\">Quick Tunnels<\/a> feature to proxy traffic from an internet-accessible URL to a local endpoint.<\/li>\n\n\n\n<li><a href=\"https:\/\/github.com\/backblaze-b2-samples\/b2-browser-upload\" target=\"_blank\" rel=\"noreferrer noopener\">B2 Browser Upload<\/a> shows you how to upload files directly to Backblaze B2 from JavaScript code running in the browser, with sample code for both the Backblaze B2 Native and S3-compatible APIs.<\/li>\n\n\n\n<li>The <a href=\"https:\/\/github.com\/backblaze-b2-samples\/b2-zip-files\" target=\"_blank\" rel=\"noreferrer noopener\">Backblaze B2 Zip Files Example<\/a> implements a simple Python web app, using the <a href=\"https:\/\/flask.palletsprojects.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Flask<\/a> web application framework and the <a href=\"https:\/\/github.com\/dchevell\/flask-executor\" target=\"_blank\" rel=\"noreferrer noopener\">flask-executor<\/a> task queue, that can compress a set of files located in Backblaze B2 into an archive, also stored in Backblaze B2, without using any local storage.<\/li>\n<\/ul>\n\n\n\n<p>We\u2019ll write more about these, and other, as yet unreleased, open source projects, over the coming weeks and months, but, if you\u2019d like us to prioritize any of the above three repositories, or any of our other projects, let us know in the comments!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Check out the Backblaze GitHub for a whole slew of useful, open source tools built on Backblaze B2 Cloud Storage. <\/p>\n","protected":false},"author":174,"featured_media":111561,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":""},"categories":[7,434,438,483],"tags":[468],"class_list":["post-111560","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cloud-storage","category-featured-1","category-featured-cloud-storage","category-tech-lab","tag-b2cloud","entry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Do More with Backblaze B2: A Tour of the Backblaze GitHub Repositories<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.backblaze.com\/blog\/do-more-with-backblaze-b2-a-tour-of-the-backblaze-github-repositories\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Do More with Backblaze B2: A Tour of the Backblaze GitHub Repositories\" \/>\n<meta property=\"og:description\" content=\"Check out the Backblaze GitHub for a whole slew of useful, open source tools built on Backblaze B2 Cloud Storage.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.backblaze.com\/blog\/do-more-with-backblaze-b2-a-tour-of-the-backblaze-github-repositories\/\" \/>\n<meta property=\"og:site_name\" content=\"Backblaze Blog | Cloud Storage &amp; Cloud Backup\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/backblaze\" \/>\n<meta property=\"article:published_time\" content=\"2024-09-05T16:41:03+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-09-13T19:46:07+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.backblaze.com\/blog\/wp-content\/uploads\/2024\/09\/bb-bh-Promote-Backblaze-Github.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1440\" \/>\n\t<meta property=\"og:image:height\" content=\"820\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Pat Patterson\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@backblaze\" \/>\n<meta name=\"twitter:site\" content=\"@backblaze\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Pat Patterson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Do More with Backblaze B2: A Tour of the Backblaze GitHub Repositories","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.backblaze.com\/blog\/do-more-with-backblaze-b2-a-tour-of-the-backblaze-github-repositories\/","og_locale":"en_US","og_type":"article","og_title":"Do More with Backblaze B2: A Tour of the Backblaze GitHub Repositories","og_description":"Check out the Backblaze GitHub for a whole slew of useful, open source tools built on Backblaze B2 Cloud Storage.","og_url":"https:\/\/www.backblaze.com\/blog\/do-more-with-backblaze-b2-a-tour-of-the-backblaze-github-repositories\/","og_site_name":"Backblaze Blog | Cloud Storage &amp; Cloud Backup","article_publisher":"https:\/\/www.facebook.com\/backblaze","article_published_time":"2024-09-05T16:41:03+00:00","article_modified_time":"2024-09-13T19:46:07+00:00","og_image":[{"width":1440,"height":820,"url":"https:\/\/www.backblaze.com\/blog\/wp-content\/uploads\/2024\/09\/bb-bh-Promote-Backblaze-Github.png","type":"image\/png"}],"author":"Pat Patterson","twitter_card":"summary_large_image","twitter_creator":"@backblaze","twitter_site":"@backblaze","twitter_misc":{"Written by":"Pat Patterson","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.backblaze.com\/blog\/do-more-with-backblaze-b2-a-tour-of-the-backblaze-github-repositories\/#article","isPartOf":{"@id":"https:\/\/www.backblaze.com\/blog\/do-more-with-backblaze-b2-a-tour-of-the-backblaze-github-repositories\/"},"author":{"name":"Pat Patterson","@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/#\/schema\/person\/a724a8aee97b6451107442747cd101a4"},"headline":"Do More with Backblaze B2: A Tour of the Backblaze GitHub Repositories","datePublished":"2024-09-05T16:41:03+00:00","dateModified":"2024-09-13T19:46:07+00:00","mainEntityOfPage":{"@id":"https:\/\/www.backblaze.com\/blog\/do-more-with-backblaze-b2-a-tour-of-the-backblaze-github-repositories\/"},"wordCount":990,"commentCount":0,"publisher":{"@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.backblaze.com\/blog\/do-more-with-backblaze-b2-a-tour-of-the-backblaze-github-repositories\/#primaryimage"},"thumbnailUrl":"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2024\/09\/bb-bh-Promote-Backblaze-Github.png","keywords":["B2Cloud"],"articleSection":["Cloud Storage","Featured","Featured-Cloud Storage","Tech Lab"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.backblaze.com\/blog\/do-more-with-backblaze-b2-a-tour-of-the-backblaze-github-repositories\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.backblaze.com\/blog\/do-more-with-backblaze-b2-a-tour-of-the-backblaze-github-repositories\/","url":"https:\/\/www.backblaze.com\/blog\/do-more-with-backblaze-b2-a-tour-of-the-backblaze-github-repositories\/","name":"Do More with Backblaze B2: A Tour of the Backblaze GitHub Repositories","isPartOf":{"@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.backblaze.com\/blog\/do-more-with-backblaze-b2-a-tour-of-the-backblaze-github-repositories\/#primaryimage"},"image":{"@id":"https:\/\/www.backblaze.com\/blog\/do-more-with-backblaze-b2-a-tour-of-the-backblaze-github-repositories\/#primaryimage"},"thumbnailUrl":"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2024\/09\/bb-bh-Promote-Backblaze-Github.png","datePublished":"2024-09-05T16:41:03+00:00","dateModified":"2024-09-13T19:46:07+00:00","breadcrumb":{"@id":"https:\/\/www.backblaze.com\/blog\/do-more-with-backblaze-b2-a-tour-of-the-backblaze-github-repositories\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.backblaze.com\/blog\/do-more-with-backblaze-b2-a-tour-of-the-backblaze-github-repositories\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.backblaze.com\/blog\/do-more-with-backblaze-b2-a-tour-of-the-backblaze-github-repositories\/#primaryimage","url":"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2024\/09\/bb-bh-Promote-Backblaze-Github.png","contentUrl":"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2024\/09\/bb-bh-Promote-Backblaze-Github.png","width":1440,"height":820,"caption":"A decorative image showing a computer with the GitHub logo and the Backblaze logo superimposed on files."},{"@type":"BreadcrumbList","@id":"https:\/\/www.backblaze.com\/blog\/do-more-with-backblaze-b2-a-tour-of-the-backblaze-github-repositories\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Do More with Backblaze B2: A Tour of the Backblaze GitHub Repositories"}]},{"@type":"WebSite","@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/#website","url":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/","name":"Backblaze Cloud Solutions Blog","description":"Cloud Storage &amp; Cloud Backup","publisher":{"@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/#organization","name":"Backblaze","url":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/i0.wp.com\/www.backblaze.com\/blog\/wp-content\/uploads\/2017\/12\/backblaze_icon_transparent.png?fit=512%2C512&ssl=1","contentUrl":"https:\/\/i0.wp.com\/www.backblaze.com\/blog\/wp-content\/uploads\/2017\/12\/backblaze_icon_transparent.png?fit=512%2C512&ssl=1","width":512,"height":512,"caption":"Backblaze"},"image":{"@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/backblaze","https:\/\/x.com\/backblaze","https:\/\/www.youtube.com\/user\/Backblaze","https:\/\/en.wikipedia.org\/wiki\/Backblaze"]},{"@type":"Person","@id":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/#\/schema\/person\/a724a8aee97b6451107442747cd101a4","name":"Pat Patterson","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2022\/01\/PatPatterson1920px-150x150.png","url":"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2022\/01\/PatPatterson1920px-150x150.png","contentUrl":"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2022\/01\/PatPatterson1920px-150x150.png","caption":"Pat Patterson"},"description":"Pat Patterson is the former chief technical evangelist at Backblaze. Over his three decades in the industry, Pat has built software and communities at Sun Microsystems, Salesforce, StreamSets, and Citrix. In his role at Backblaze, he creates and delivers content tailored to the needs of the hands-on technical professional, acts as the \u201cvoice of the developer\u201d on the Product team, and actively participates in the wider technical community. Outside the office, Pat runs far, having completed ultramarathons up to the 50 mile distance. Catch up with Pat via Bluesky or LinkedIn.","url":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/author\/pat\/"}]}},"jetpack_featured_media_url":"https:\/\/backblazeprod.wpenginepowered.com\/wp-content\/uploads\/2024\/09\/bb-bh-Promote-Backblaze-Github.png","_links":{"self":[{"href":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/wp-json\/wp\/v2\/posts\/111560","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/wp-json\/wp\/v2\/users\/174"}],"replies":[{"embeddable":true,"href":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/wp-json\/wp\/v2\/comments?post=111560"}],"version-history":[{"count":0,"href":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/wp-json\/wp\/v2\/posts\/111560\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/wp-json\/wp\/v2\/media\/111561"}],"wp:attachment":[{"href":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/wp-json\/wp\/v2\/media?parent=111560"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/wp-json\/wp\/v2\/categories?post=111560"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/backblazeprod.wpenginepowered.com\/blog\/wp-json\/wp\/v2\/tags?post=111560"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}