Copy-file-by-id command

Copy a file version to the given bucket (server-side, not via download+upload). Copies the contents of the source B2 file to destination bucket and assigns the given name to the new B2 file.

By default, it copies the file info and content type. You can replace those by setting the metadataDirective to replace.

--contentType and --info should only be provided when --metadataDirective is set to replace and should not be provided when --metadataDirective is set to copy.

--contentType and --info are optional. If not set, they will be set based on the source file.

By default, the whole file gets copied, but you can copy an (inclusive!) range of bytes from the source file to the new file using --range option.

Each --info entry is in the form a=b, you can specify many.

The maximum file size is 5GB or 10TB, depending on capability of installed b2sdk version.

To request SSE-B2 encryption for destination files, please set --destinationServerSideEncryption=SSE-B2. The default algorithm is set to AES256 which can by changed with --destinationServerSideEncryptionAlgorithm parameter.

Requires capability:

  • readFiles (if sourceFileId bucket is private)

  • writeFiles

b2 copy-file-by-id [-h] [--metadataDirective {copy,replace}]
                   [--contentType CONTENTTYPE] [--range RANGE] [--info INFO]
                   [--destinationServerSideEncryption {SSE-B2}]
                   [--destinationServerSideEncryptionAlgorithm {AES256}]
                   sourceFileId destinationBucketName b2FileName

Positional Arguments


Named Arguments


Possible choices: copy, replace


Default: []


Possible choices: SSE-B2


Possible choices: AES256

Default: “AES256”