Upload-file command¶
Uploads one file to the given bucket. Uploads the contents of the local file, and assigns the given name to the B2 file, possibly setting options like server-side encryption and retention.
Warning
Setting file retention mode to ‘compliance’ is irreversible - such files can only be ever deleted after their retention period passes, regardless of keys (master or not) used. This is especially dangerous when setting bucket default retention, as it may lead to high storage costs.
By default, upload_file will compute the sha1 checksum of the file to be uploaded. But, if you already have it, you can provide it on the command line to save a little time.
Content type is optional. If not set, it will be set based on the file extension.
By default, the file is broken into as many parts as possible to
maximize upload parallelism and increase speed. The minimum that
B2 allows is 100MB. Setting --minPartSize
to a larger value will
reduce the number of parts uploaded when uploading a large file.
The maximum number of upload threads to use to upload parts of a large file
is specified by --threads
. It has no effect on small files (under 200MB).
Default is 10.
If the tqdm
library is installed, progress bar is displayed
on stderr. Without it, simple text progress is printed.
Use --noProgress
to disable progress reporting.
Each fileInfo is of the form a=b
.
To request SSE-B2 or SSE-C encryption for destination files,
please set --destinationServerSideEncryption=SSE-B2/SSE-C
.
The default algorithm is set to AES256 which can be changed
with --destinationServerSideEncryptionAlgorithm
parameter.
Using SSE-C requires providing B2_DESTINATION_SSE_C_KEY_B64
environment variable,
containing the base64 encoded encryption key.
If B2_DESTINATION_SSE_C_KEY_ID
environment variable is provided,
it’s value will be saved as sse_c_key_id
in the
uploaded file’s fileInfo.
Setting file retention settings requires the writeFileRetentions capability, and only works in bucket
with fileLockEnabled=true. Providing --fileRetentionMode
requires providing --retainUntil
which has to
be a future timestamp, in the form of an integer representing milliseconds
since epoch. Leaving out these options results in a file retained according to bucket defaults.
Setting legal holds requires the writeFileLegalHolds capability, and only works in bucket with fileLockEnabled=true.
Requires capability:
writeFiles
b2 upload-file [-h] [--noProgress] [--quiet] [--contentType CONTENTTYPE]
[--minPartSize MINPARTSIZE] [--sha1 SHA1] [--threads THREADS]
[--info INFO]
[--destinationServerSideEncryption {SSE-B2,SSE-C}]
[--destinationServerSideEncryptionAlgorithm {AES256}]
[--legalHold {on,off}]
[--fileRetentionMode {compliance,governance}]
[--retainUntil TIMESTAMP]
bucketName localFilePath b2FileName
Positional Arguments¶
- bucketName
- localFilePath
- b2FileName
Named Arguments¶
- --noProgress
Default: False
- --quiet
Default: False
- --contentType
- --minPartSize
- --sha1
- --threads
Default: 10
- --info
Default: []
- --destinationServerSideEncryption
Possible choices: SSE-B2, SSE-C
- --destinationServerSideEncryptionAlgorithm
Possible choices: AES256
Default: “AES256”
- --legalHold
Possible choices: on, off
- --fileRetentionMode
Possible choices: compliance, governance
- --retainUntil