This document outlines all significant changes made to the Backblaze B2 Native API between versions 2 and 4, focusing on new features, modified endpoints, and compatibility considerations.
- Added support for Multi-Bucket Application Keys that grant access to multiple specific buckets within an account
- Response Structure Changes:
- Removed fields:
bucketId,bucketName, andinfoTypefrom the response - Added new
allowedfield containing:buckets: Array of objects with bucketidandnamefieldscapabilities: List of granted capabilitiesnamePrefix: File name prefix restrictions (if any)
- Compatibility Notes:
- Multi-Bucket Application Keys work only with v4 b2_authorize_account
- Keys created with v3 b2_create_key will work with v4 b2_authorize_account
- Keys created with v4 b2_create_key with no bucket restrictions will work with v3 b2_authorize_account
- Removed fields:
- Request Changes:
- Added
bucketIdsfield: Array of bucket IDs to grant access to - Removed
bucketIdfield (replaced bybucketIds)
- Added
- Response Changes:
- Added
bucketIdsfield in response - Removed
bucketIdfield from response
- Added
- Response Changes:
- Added
bucketIdsfield in response - Removed
bucketIdfield from response
- Added
- Compatibility Notes:
- Only works with Multi-Bucket Application Keys when using v4
- Returns error if earlier API versions are called with Multi-Bucket Application Keys
- Response Changes:
- Added
bucketIdsfield in response - Removed
bucketIdfield from response
- Added
- Compatibility Notes:
- Only Multi-Bucket Application Keys will be returned with v4
- Earlier API versions will only return non-Multi-Bucket Application Keys
- Extended b2_authorize_account to work with multiple API suites, including B2 Storage and Partner APIs
- Response Structure Changes:
- Added data structure that groups information by API suite
- For each enabled API suite, provides information needed to call those APIs
- Added new
apiInfostructure containing:storageApi: Information for B2 Native APIgroupsApi: Information for Partner API- Additional API suites as applicable
- Added Object Lock capabilities to view information about locked objects
- Response Changes:
- Added
fileRetentionfield with object lock retention information - Added
legalHoldfield with legal hold information
- Added
- Response Changes:
- Added
fileRetentionfield with object lock retention information - Added
legalHoldfield with legal hold information
- Added
- b2_update_file_retention: Modifies Object Lock retention settings for existing files
- b2_update_file_legal_hold: Sets or removes legal hold on a file
- Added Server-Side Encryption support with both SSE-B2 and SSE-C modes
- Added two options for encryption with AES-256: SSE-B2 (Backblaze-managed keys) and SSE-C (Customer-managed keys)
- Response Changes:
- Added
serverSideEncryptionfield with encryption information
- Added
- Response Changes:
- Added
serverSideEncryptionfield with encryption information
- Added
- Request Changes:
- Added encryption headers:
X-Bz-Server-Side-Encryption: Request SSE-B2 encryptionX-Bz-Server-Side-Encryption-Customer-Algorithm,X-Bz-Server-Side-Encryption-Customer-Key,X-Bz-Server-Side-Encryption-Customer-Key-Md5: Request SSE-C encryption
- Added encryption headers:
- Request Changes:
- Added
defaultServerSideEncryptionfield to set default encryption settings for bucket
- Added
- Response Changes:
- Added
defaultServerSideEncryptionfield showing bucket encryption settings
- Added
- Clean up of workaround introduced in August 9, 2018 release
- Returns exactly what is requested in a query without implicit filters based on app key
- Response Changes:
- Added
bucketNamewhen app key is restricted to a bucket (already hadbucketId) - Removed
minimumPartSizefield (replaced byrecommendedPartSizeandabsoluteMinimumPartSize)
- Added
- Response Changes:
- Added
accountIdandbucketIdfields
- Added
- Response Changes:
- Added
accountIdandbucketIdfields - Removed
sizefield (replaced bycontentLength)
- Added
- Response Changes:
- Added
accountIdandbucketIdfields - Removed
sizefield (replaced bycontentLength)
- Added
- Response Changes:
- Added
actionfield (always "upload") - Added
contentLengthfield (always null) - Added
contentSha1field (always null)
- Added
- Response Changes:
- Added
actionfield (always "upload") - Added
contentLengthfield (always null) - Added
contentSha1field (always null)
- Added
- Response Changes:
- Added
actionfield (always "start") - Added
contentLengthfield (0) - Added
contentSha1field ("none")
- Added