At the beginning of summer, we put B2 Copy File APIs into beta. We’re pleased to announce the end of the beta and that the APIs are all now public!
We had a number of people use the beta features and give us great feedback. In fact, because of the feedback, we were able to implement an incremental feature.
New Feature — Bucket to Bucket Copies
Initially, our guidance was that these new APIs were only to be used within the same B2 bucket, but in response to customer and partner feedback, we added the ability to copy files from one bucket to another bucket within the same account.
To use this new feature with b2_copy_file
, simply pass in the destinationBucketId
where the new file copy will be stored. If this is not set, the copied file will simply default to the same bucket as the source file. Within b2_copy_part
, there is a subtle difference in that the Source File ID can belong to a different bucket than the Large File ID.
For the complete API documentation, refer to the Backblaze B2 docs online:
b2_copy_file
: https://www.backblaze.com/b2/docs/b2_copy_file.htmlb2_copy_part
: https://www.backblaze.com/b2/docs/b2_copy_part.html- Large files: https://www.backblaze.com/b2/docs/large_files.html
What You Can Do With B2 Copy File
In a literal sense, the new capability enables you to create a new file (or new part of a large file) that is a copy of an existing file (or range of an existing file). You can either copy over the source file’s metadata or specify new metadata for the new file that is created. This all occurs without having to download or re-upload any data.
This has been one of our most requested features as it unlocks:
- Rename/Re-organize. The new capabilities give customers the ability to re-organize their files without having to download and re-upload. This is especially helpful when trying to mirror the contents of a file system to B2.
- Synthetic Backup. With the ability to copy ranges of a file, users can now leverage B2 for synthetic backup, i.e. uploading a full backup but then only uploading incremental changes (as opposed to re-uploading the whole file with every change). This is particularly helpful for applications like backing up VMs where re-uploading the entirety of the file every time it changes can be inefficient.
While many of our customers directly leverage our APIs, just as many use 3rd party software (B2 Integration Partners) to facilitate storage into B2. Our Integration Partners were very helpful and active in giving us feedback during the beta. Some highlights of those that are already supporting the copy_file feature:
Transmit: macOS file transfer/cloud storage application that supports high speed copying to data between your Mac and more than 15 different cloud services. | |
RClone: Rsync for cloud storage is a powerful command line tool to copy and sync files to and from local disk, SFTP servers, and many cloud storage providers. | |
Mountain Duck: Mount server and cloud storage as a disk (Finder on macOS; File Explorer on Windows). With Mountain Duck, you can also open remote files with any application as if the file were on a local volume. | |
Cyberduck: File transfer/cloud storage browser for Mac and Windows with support for more than 10 different cloud services. | |
FileZilla Pro: FileZilla Pro transfers files between your machine and remote servers and supports a number of different protocols and storage locations. |
Where to Learn More
The endpoint documentation can be found here:
b2_copy_file
: https://www.backblaze.com/b2/docs/b2_copy_file.htmlb2_copy_part
: https://www.backblaze.com/b2/docs/b2_copy_part.html