Package b2 provides an idiomatic, efficient interface to Backblaze B2 Cloud Storage.
Uploads to B2 require a SHA1 header, so the hash of the file must be known
before the upload starts. The (*Bucket).Upload API tries its best not to
buffer the entire file in memory, and it will avoid it if passed either a
bytes.Buffer or a io.ReadSeeker.
If you know the SHA1 and the length of the file in advance, you can use
(*Bucket).UploadWithSHA1 but you are responsible for retrying on
Downloads from B2 are simple GETs, so if you want more control than the
standard functions you can build your own URL according to the API docs.
All the information you need is returned by Client.LoginInfo().
There is no first-class support for versions in this library, but most
behaviors are transparently exposed. Upload can be used multiple times
with the same name, ListFiles will only return the latest version of
non-hidden files, and ListFilesVersions will return all files and versions.
Large files (b2_*_large_file, b2_*_part), b2_get_download_authorization,
If the B2_DEBUG environment variable is set to 1, all API calls will be
logged. On Go 1.7 and later, it will also log when new (non-reused)
connections are established.