b2sdk.sync.action

class b2sdk.sync.action.AbstractAction[source]

Bases: object

An action to take, such as uploading, downloading, or deleting a file. Multi-threaded tasks create a sequence of Actions which are then run by a pool of threads.

An action can depend on other actions completing. An example of this is making sure a CreateBucketAction happens before an UploadFileAction.

run(bucket: Bucket, reporter: ProgressReport, dry_run: bool = False)[source]

Main action routine.

Parameters
  • bucket (b2sdk.bucket.Bucket) – a Bucket object

  • reporter – a place to report errors

  • dry_run (bool) – if True, perform a dry run

abstract get_bytes() int[source]

Return the number of bytes to transfer for this action.

abstract do_action(bucket: Bucket, reporter: ProgressReport) None[source]

Perform the action, returning only after the action is completed.

Parameters
  • bucket – a Bucket object

  • reporter – a place to report errors

abstract do_report(bucket: Bucket, reporter: ProgressReport) None[source]

Report the action performed.

Parameters
  • bucket – a Bucket object

  • reporter – a place to report errors

class b2sdk.sync.action.B2UploadAction(local_full_path: str, relative_name: str, b2_file_name: str, mod_time_millis: int, size: int, encryption_settings_provider: AbstractSyncEncryptionSettingsProvider)[source]

Bases: AbstractAction

File uploading action.

__init__(local_full_path: str, relative_name: str, b2_file_name: str, mod_time_millis: int, size: int, encryption_settings_provider: AbstractSyncEncryptionSettingsProvider)[source]
Parameters
  • local_full_path – a local file path

  • relative_name – a relative file name

  • b2_file_name – a name of a new remote file

  • mod_time_millis – file modification time in milliseconds

  • size – a file size

  • encryption_settings_provider – encryption setting provider

get_bytes() int[source]

Return file size.

get_all_sources() List[OutboundTransferSource][source]

Get list of sources required to complete this upload

do_action(bucket: Bucket, reporter: ProgressReport) None[source]

Perform the uploading action, returning only after the action is completed.

Parameters
  • bucket – a Bucket object

  • reporter – a place to report errors

do_report(bucket: Bucket, reporter: ProgressReport) None[source]

Report the uploading action performed.

Parameters
  • bucket – a Bucket object

  • reporter – a place to report errors

class b2sdk.sync.action.B2IncrementalUploadAction(local_full_path: str, relative_name: str, b2_file_name: str, mod_time_millis: int, size: int, encryption_settings_provider: ~b2sdk.sync.encryption_provider.AbstractSyncEncryptionSettingsProvider, file_version: ~typing.Optional[~b2sdk.file_version.FileVersion] = None, absolute_minimum_part_size: int = <class 'NoneType'>)[source]

Bases: B2UploadAction

__init__(local_full_path: str, relative_name: str, b2_file_name: str, mod_time_millis: int, size: int, encryption_settings_provider: ~b2sdk.sync.encryption_provider.AbstractSyncEncryptionSettingsProvider, file_version: ~typing.Optional[~b2sdk.file_version.FileVersion] = None, absolute_minimum_part_size: int = <class 'NoneType'>)[source]
Parameters
  • local_full_path – a local file path

  • relative_name – a relative file name

  • b2_file_name – a name of a new remote file

  • mod_time_millis – file modification time in milliseconds

  • size – a file size

  • encryption_settings_provider – encryption setting provider

  • file_version – version of file currently on the server

  • absolute_minimum_part_size – minimum file part size for large files

get_all_sources() List[OutboundTransferSource][source]

Get list of sources required to complete this upload

class b2sdk.sync.action.B2HideAction(relative_name: str, b2_file_name: str)[source]

Bases: AbstractAction

__init__(relative_name: str, b2_file_name: str)[source]
Parameters
  • relative_name – a relative file name

  • b2_file_name – a name of a remote file

get_bytes() int[source]

Return file size.

Returns

always zero

Return type

int

do_action(bucket: Bucket, reporter: ProgressReport) None[source]

Perform the hiding action, returning only after the action is completed.

Parameters
  • bucket – a Bucket object

  • reporter – a place to report errors

do_report(bucket: Bucket, reporter: SyncReport)[source]

Report the hiding action performed.

Parameters
  • bucket – a Bucket object

  • reporter – a place to report errors

class b2sdk.sync.action.B2DownloadAction(source_path: B2Path, b2_file_name: str, local_full_path: str, encryption_settings_provider: AbstractSyncEncryptionSettingsProvider)[source]

Bases: AbstractAction

__init__(source_path: B2Path, b2_file_name: str, local_full_path: str, encryption_settings_provider: AbstractSyncEncryptionSettingsProvider)[source]
Parameters
  • source_path – the file to be downloaded

  • b2_file_name – b2_file_name

  • local_full_path – a local file path

  • encryption_settings_provider – encryption setting provider

get_bytes() int[source]

Return file size.

do_action(bucket: Bucket, reporter: ProgressReport) None[source]

Perform the downloading action, returning only after the action is completed.

Parameters
  • bucket – a Bucket object

  • reporter – a place to report errors

do_report(bucket: Bucket, reporter: ProgressReport) None[source]

Report the downloading action performed.

Parameters
  • bucket – a Bucket object

  • reporter – a place to report errors

class b2sdk.sync.action.B2CopyAction(b2_file_name: str, source_path: B2Path, dest_b2_file_name, source_bucket: Bucket, destination_bucket: Bucket, encryption_settings_provider: AbstractSyncEncryptionSettingsProvider)[source]

Bases: AbstractAction

File copying action.

__init__(b2_file_name: str, source_path: B2Path, dest_b2_file_name, source_bucket: Bucket, destination_bucket: Bucket, encryption_settings_provider: AbstractSyncEncryptionSettingsProvider)[source]
Parameters
  • b2_file_name – a b2_file_name

  • source_path – the file to be copied

  • dest_b2_file_name – a name of a destination remote file

  • source_bucket – bucket to copy from

  • destination_bucket – bucket to copy to

  • encryption_settings_provider – encryption setting provider

get_bytes() int[source]

Return file size.

do_action(bucket: Bucket, reporter: ProgressReport) None[source]

Perform the copying action, returning only after the action is completed.

Parameters
  • bucket – a Bucket object

  • reporter – a place to report errors

do_report(bucket: Bucket, reporter: ProgressReport) None[source]

Report the copying action performed.

Parameters
  • bucket – a Bucket object

  • reporter – a place to report errors

class b2sdk.sync.action.B2DeleteAction(relative_name: str, b2_file_name: str, file_id: str, note: str)[source]

Bases: AbstractAction

__init__(relative_name: str, b2_file_name: str, file_id: str, note: str)[source]
Parameters
  • relative_name – a relative file name

  • b2_file_name – a name of a remote file

  • file_id – a file ID

  • note – a deletion note

get_bytes() int[source]

Return file size.

Returns

always zero

do_action(bucket: Bucket, reporter: ProgressReport)[source]

Perform the deleting action, returning only after the action is completed.

Parameters
  • bucket – a Bucket object

  • reporter – a place to report errors

do_report(bucket: Bucket, reporter: SyncReport)[source]

Report the deleting action performed.

Parameters
  • bucket – a Bucket object

  • reporter – a place to report errors

class b2sdk.sync.action.LocalDeleteAction(relative_name: str, full_path: str)[source]

Bases: AbstractAction

__init__(relative_name: str, full_path: str)[source]
Parameters
  • relative_name – a relative file name

  • full_path – a full local path

get_bytes() int[source]

Return file size.

Returns

always zero

do_action(bucket: Bucket, reporter: ProgressReport)[source]

Perform the deleting of a local file action, returning only after the action is completed.

Parameters
  • bucket – a Bucket object

  • reporter – a place to report errors

do_report(bucket: Bucket, reporter: SyncReport)[source]

Report the deleting of a local file action performed.

Parameters
  • bucket – a Bucket object

  • reporter – a place to report errors