B2 Bucket¶
-
class
b2sdk.v1.
Bucket
[source]¶ Provide access to a bucket in B2: listing files, uploading and downloading.
-
DEFAULT_CONTENT_TYPE
= 'b2/x-auto'¶
-
__init__
(api, id_, name=None, type_=None, bucket_info=None, cors_rules=None, lifecycle_rules=None, revision=None, bucket_dict=None, options_set=None)[source]¶ - Parameters
api (b2sdk.v1.B2Api) – an API object
id (str) – a bucket id
name (str) – a bucket name
type (str) – a bucket type
bucket_info (dict) – an info to store with a bucket
cors_rules (dict) – CORS rules to store with a bucket
lifecycle_rules (dict) – lifecycle rules to store with a bucket
revision (int) – a bucket revision number
bucket_dict (dict) – a dictionary which contains bucket parameters
options_set (set) – set of bucket options strings
-
set_type
(bucket_type)[source]¶ Update bucket type.
- Parameters
bucket_type (str) – a bucket type (“allPublic” or “allPrivate”)
-
update
(bucket_type=None, bucket_info=None, cors_rules=None, lifecycle_rules=None, if_revision_is=None)[source]¶ Update various bucket parameters.
- Parameters
bucket_type (str) – a bucket type
bucket_info (dict) – an info to store with a bucket
cors_rules (dict) – CORS rules to store with a bucket
lifecycle_rules (dict) – lifecycle rules to store with a bucket
if_revision_is (int) – revision number, update the info only if revision equals to if_revision_is
-
cancel_large_file
(file_id)[source]¶ Cancel a large file transfer.
- Parameters
file_id (str) – a file ID
-
download_file_by_id
(file_id, download_dest, progress_listener=None, range_=None)[source]¶ Download a file by ID.
Note
download_file_by_id actually belongs in
b2sdk.v1.B2Api
, not inb2sdk.v1.Bucket
; we just provide a convenient redirect here- Parameters
file_id (str) – a file ID
download_dest – an instance of the one of the following classes:
DownloadDestLocalFile
,DownloadDestBytes
,DownloadDestProgressWrapper
,PreSeekedDownloadDest
, or any sub class ofAbstractDownloadDestination
None progress_listener (b2sdk.v1.AbstractProgressListener,) – a progress listener object to use, or
None
to not report progressint] range (tuple[int,) – two integer values, start and end offsets
-
download_file_by_name
(file_name, download_dest, progress_listener=None, range_=None)[source]¶ Download a file by name.
See also
Synchronizer, a high-performance utility that synchronizes a local folder with a Bucket.
- Parameters
file_name (str) – a file name
download_dest – an instance of the one of the following classes:
DownloadDestLocalFile
,DownloadDestBytes
,DownloadDestProgressWrapper
,PreSeekedDownloadDest
, or any sub class ofAbstractDownloadDestination
None progress_listener (b2sdk.v1.AbstractProgressListener,) – a progress listener object to use, or
None
to not track progressint] range (tuple[int,) – two integer values, start and end offsets
-
get_file_info_by_id
(file_id: str) → b2sdk.file_version.FileVersionInfo[source]¶ Gets a file version’s info by ID.
- Parameters
file_id (str) – the id of the file who’s info will be retrieved.
- Return type
generator[b2sdk.v1.FileVersionInfo]
-
get_file_info_by_name
(file_name: str) → b2sdk.file_version.FileVersionInfo[source]¶ Gets a file version’s info by its name.
- Parameters
file_name (str) – the name of the file who’s info will be retrieved.
- Return type
generator[b2sdk.v1.FileVersionInfo]
Return an authorization token that is valid only for downloading files from the given bucket.
-
list_parts
(file_id, start_part_number=None, batch_size=None)[source]¶ Get a list of all parts that have been uploaded for a given file.
-
list_file_versions
(file_name, fetch_count=None)[source]¶ Lists all of the versions for a single file.
- Parameters
- Return type
generator[b2sdk.v1.FileVersionInfo]
-
ls
(folder_to_list='', show_versions=False, recursive=False, fetch_count=10000)[source]¶ Pretend that folders exist and yields the information about the files in a folder.
B2 has a flat namespace for the files in a bucket, but there is a convention of using “/” as if there were folders. This method searches through the flat namespace to find the files and “folders” that live within a given folder.
When the recursive flag is set, lists all of the files in the given folder, and all of its sub-folders.
- Parameters
folder_to_list (str) – the name of the folder to list; must not start with “/”. Empty string means top-level folder
show_versions (bool) – when
True
returns info about all versions of a file, whenFalse
, just returns info about the most recent versionsrecursive (bool) – if
True
, list folders recursivelyfetch_count (int,None) – how many entries to return or
None
to use the default. Acceptable values: 1 - 10000
- Return type
generator[tuple[b2sdk.v1.FileVersionInfo, str]]
- Returns
generator of (file_version_info, folder_name) tuples
Note
In case of recursive=True, folder_name is returned only for first file in the folder.
-
list_unfinished_large_files
(start_file_id=None, batch_size=None, prefix=None)[source]¶ A generator that yields an
b2sdk.v1.UnfinishedLargeFile
for each unfinished large file in the bucket, starting at the given file, filtering by prefix.
-
start_large_file
(file_name, content_type=None, file_info=None)[source]¶ Start a large file transfer.
-
upload_bytes
(data_bytes, file_name, content_type=None, file_infos=None, progress_listener=None)[source]¶ Upload bytes in memory to a B2 file.
- Parameters
data_bytes (bytes) – a byte array to upload
file_name (str) – a file name to upload bytes to
content_type (str,None) – the MIME type, or
None
to accept the default based on file extension of the B2 file namefile_infos (dict,None) – a file info to store with the file or
None
to not store anythingprogress_listener (b2sdk.v1.AbstractProgressListener,None) – a progress listener object to use, or
None
to not track progress
- Return type
generator[b2sdk.v1.FileVersion]
-
upload_local_file
(local_file, file_name, content_type=None, file_infos=None, sha1_sum=None, min_part_size=None, progress_listener=None)[source]¶ Upload a file on local disk to a B2 file.
See also
Synchronizer, a high-performance utility that synchronizes a local folder with a bucket.
- Parameters
local_file (str) – a path to a file on local disk
file_name (str) – a file name of the new B2 file
content_type (str,None) – the MIME type, or
None
to accept the default based on file extension of the B2 file namefile_infos (dict,None) – a file info to store with the file or
None
to not store anythingsha1_sum (str,None) – file SHA1 hash or
None
to compute it automaticallymin_part_size (int) – a minimum size of a part
progress_listener (b2sdk.v1.AbstractProgressListener,None) – a progress listener object to use, or
None
to not report progress
- Return type
generator[b2sdk.v1.FileVersion]
-
upload
(upload_source, file_name, content_type=None, file_info=None, min_part_size=None, progress_listener=None)[source]¶ Upload a file to B2, retrying as needed.
The source of the upload is an UploadSource object that can be used to open (and re-open) the file. The result of opening should be a binary file whose read() method returns bytes.
- Parameters
upload_source (b2sdk.v1.UploadSource) – an object that opens the source of the upload
file_name (str) – the file name of the new B2 file
content_type (str,None) – the MIME type, or
None
to accept the default based on file extension of the B2 file namefile_info (dict,None) – a file info to store with the file or
None
to not store anythingmin_part_size (int,None) – the smallest part size to use or
None
to determine automaticallyprogress_listener (b2sdk.v1.AbstractProgressListener,None) – a progress listener object to use, or
None
to not report progress
- Return type
generator[b2sdk.v1.FileVersion]
The function opener should return a file-like object, and it must be possible to call it more than once in case the upload is retried.
-
create_file
(write_intents, file_name, content_type=None, file_info=None, progress_listener=None, recommended_upload_part_size=None, continue_large_file_id=None)[source]¶ Creates a new file in this bucket using an iterable (list, tuple etc) of remote or local sources.
Source ranges can overlap and remote sources will be prioritized over local sources (when possible). For more information and usage examples please see Advanced usage patterns.
- Parameters
write_intents (list[b2sdk.v1.WriteIntent]) – list of write intents (remote or local sources)
new_file_name (str) – file name of the new file
content_type (str,None) – content_type for the new file, if
None
content_type would be automatically determined or it may be copied if it resolves as single part remote source copyfile_info (dict,None) – file_info for the new file, if
None
it will be set to empty dict or it may be copied if it resolves as single part remote source copyprogress_listener (b2sdk.v1.AbstractProgressListener,None) – a progress listener object to use, or
None
to not report progressrecommended_upload_part_size (int,None) – the recommended part size to use for uploading local sources or
None
to determine automatically, but remote sources would be copied with maximum possible part sizecontinue_large_file_id (str,None) – large file id that should be selected to resume file creation for multipart upload/copy,
None
for automatic search for this id
-
create_file_stream
(write_intents_iterator, file_name, content_type=None, file_info=None, progress_listener=None, recommended_upload_part_size=None, continue_large_file_id=None)[source]¶ Creates a new file in this bucket using a stream of multiple remote or local sources.
Source ranges can overlap and remote sources will be prioritized over local sources (when possible). For more information and usage examples please see Advanced usage patterns.
- Parameters
write_intents_iterator (iterator[b2sdk.v1.WriteIntent]) – iterator of write intents which are sorted ascending by
destination_offset
new_file_name (str) – file name of the new file
content_type (str,None) – content_type for the new file, if
None
content_type would be automatically determined or it may be copied if it resolves as single part remote source copyfile_info (dict,None) – file_info for the new file, if
None
it will be set to empty dict or it may be copied if it resolves as single part remote source copyprogress_listener (b2sdk.v1.AbstractProgressListener,None) – a progress listener object to use, or
None
to not report progressrecommended_upload_part_size (int,None) – the recommended part size to use for uploading local sources or
None
to determine automatically, but remote sources would be copied with maximum possible part sizecontinue_large_file_id (str,None) – large file id that should be selected to resume file creation for multipart upload/copy, if
None
in multipart case it would always start a new large file
-
concatenate
(outbound_sources, file_name, content_type=None, file_info=None, progress_listener=None, recommended_upload_part_size=None, continue_large_file_id=None)[source]¶ Creates a new file in this bucket by concatenating multiple remote or local sources.
- Parameters
outbound_sources (list[b2sdk.v1.OutboundTransferSource]) – list of outbound sources (remote or local)
new_file_name (str) – file name of the new file
content_type (str,None) – content_type for the new file, if
None
content_type would be automatically determined from file name or it may be copied if it resolves as single part remote source copyfile_info (dict,None) – file_info for the new file, if
None
it will be set to empty dict or it may be copied if it resolves as single part remote source copyprogress_listener (b2sdk.v1.AbstractProgressListener,None) – a progress listener object to use, or
None
to not report progressrecommended_upload_part_size (int,None) – the recommended part size to use for uploading local sources or
None
to determine automatically, but remote sources would be copied with maximum possible part sizecontinue_large_file_id (str,None) – large file id that should be selected to resume file creation for multipart upload/copy,
None
for automatic search for this id
-
concatenate_stream
(outbound_sources_iterator, file_name, content_type=None, file_info=None, progress_listener=None, recommended_upload_part_size=None, continue_large_file_id=None)[source]¶ Creates a new file in this bucket by concatenating stream of multiple remote or local sources.
- Parameters
outbound_sources_iterator (iterator[b2sdk.v1.OutboundTransferSource]) – iterator of outbound sources
new_file_name (str) – file name of the new file
content_type (str,None) – content_type for the new file, if
None
content_type would be automatically determined or it may be copied if it resolves as single part remote source copyfile_info (dict,None) – file_info for the new file, if
None
it will be set to empty dict or it may be copied if it resolves as single part remote source copyprogress_listener (b2sdk.v1.AbstractProgressListener,None) – a progress listener object to use, or
None
to not report progressrecommended_upload_part_size (int,None) – the recommended part size to use for uploading local sources or
None
to determine automatically, but remote sources would be copied with maximum possible part sizecontinue_large_file_id (str,None) – large file id that should be selected to resume file creation for multipart upload/copy, if
None
in multipart case it would always start a new large file
-
copy
(file_id, new_file_name, content_type=None, file_info=None, offset=0, length=None, progress_listener=None)[source]¶ Creates a new file in this bucket by (server-side) copying from an existing file.
- Parameters
file_id (str) – file ID of existing file to copy from
new_file_name (str) – file name of the new file
content_type (str,None) – content_type for the new file, if
None
andb2_copy_file
will be used content_type will be copied from source file - otherwise content_type would be automatically determinedfile_info (dict,None) – file_info for the new file, if
None
will andb2_copy_file
will be used file_info will be copied from source file - otherwise it will be set to empty dictoffset (int) – offset of exisiting file that copy should start from
length (int,None) – number of bytes to copy, if
None
thenoffset
have to be0
and it will useb2_copy_file
withoutrange
parameter so it may fail if file is too large. For large files length have to be specified to useb2_copy_part
instead.progress_listener (b2sdk.v1.AbstractProgressListener,None) – a progress listener object to use for multipart copy, or
None
to not report progress
-
copy_file
(file_id, new_file_name, bytes_range=None, metadata_directive=None, content_type=None, file_info=None)[source]¶ Creates a new file in this bucket by (server-side) copying from an existing file.
- Parameters
file_id (str) – file ID of existing file
new_file_name (str) – file name of the new file
bytes_range (tuple[int,int],None) – start and end offsets (inclusive!), default is the entire file
metadata_directive (b2sdk.v1.MetadataDirectiveMode,None) – default is
b2sdk.v1.MetadataDirectiveMode.COPY
content_type (str,None) – content_type for the new file if metadata_directive is set to
b2sdk.v1.MetadataDirectiveMode.REPLACE
, default will copy the content_type of old filefile_info (dict,None) – file_info for the new file if metadata_directive is set to
b2sdk.v1.MetadataDirectiveMode.REPLACE
, default will copy the file_info of old file
-