b2sdk.sync.sync

b2sdk.sync.sync.count_files(local_folder, reporter, policies_manager)[source]

Count all of the files in a local folder.

Parameters:
class b2sdk.sync.sync.KeepOrDeleteMode(value)[source]

Bases: Enum

Mode of dealing with old versions of files on the destination

DELETE = 301

delete the old version as soon as the new one has been uploaded

KEEP_BEFORE_DELETE = 302

keep the old versions of the file for a configurable number of days before deleting them, always keeping the newest version

NO_DELETE = 303

keep old versions of the file, do not delete anything

class b2sdk.sync.sync.Synchronizer(max_workers, policies_manager=<b2sdk.scan.policies.ScanPoliciesManager object>, dry_run=False, allow_empty_source=False, newer_file_mode=NewerFileSyncMode.RAISE_ERROR, keep_days_or_delete=KeepOrDeleteMode.NO_DELETE, compare_version_mode=CompareVersionMode.MODTIME, compare_threshold=None, keep_days=None, sync_policy_manager: ~b2sdk.sync.policy_manager.SyncPolicyManager = <b2sdk.sync.policy_manager.SyncPolicyManager object>, upload_mode: ~b2sdk.transfer.outbound.upload_source.UploadMode = UploadMode.FULL, absolute_minimum_part_size: ~typing.Optional[int] = None)[source]

Bases: object

Copies multiple “files” from source to destination. Optionally deletes or hides destination files that the source does not have.

The synchronizer can copy files:

  • From a B2 bucket to a local destination.

  • From a local source to a B2 bucket.

  • From one B2 bucket to another.

  • Between different folders in the same B2 bucket. It will sync only the latest versions of files.

By default, the synchronizer:

  • Fails when the specified source directory doesn’t exist or is empty. (see allow_empty_source argument)

  • Fails when the source is newer. (see newer_file_mode argument)

  • Doesn’t delete a file if it’s present on the destination but not on the source. (see keep_days_or_delete and keep_days arguments)

  • Compares files based on modification time. (see compare_version_mode and compare_threshold arguments)

__init__(max_workers, policies_manager=<b2sdk.scan.policies.ScanPoliciesManager object>, dry_run=False, allow_empty_source=False, newer_file_mode=NewerFileSyncMode.RAISE_ERROR, keep_days_or_delete=KeepOrDeleteMode.NO_DELETE, compare_version_mode=CompareVersionMode.MODTIME, compare_threshold=None, keep_days=None, sync_policy_manager: ~b2sdk.sync.policy_manager.SyncPolicyManager = <b2sdk.sync.policy_manager.SyncPolicyManager object>, upload_mode: ~b2sdk.transfer.outbound.upload_source.UploadMode = UploadMode.FULL, absolute_minimum_part_size: ~typing.Optional[int] = None)[source]

Initialize synchronizer class and validate arguments

Parameters:
  • max_workers (int) – max number of workers

  • policies_manager – object which decides which files to process

  • dry_run (bool) – test mode, does not actually transfer/delete when enabled

  • allow_empty_source (bool) – if True, do not check whether source folder is empty

  • newer_file_mode (b2sdk.v2.NewerFileSyncMode) – setting which determines handling for destination files newer than on the source

  • keep_days_or_delete (b2sdk.v2.KeepOrDeleteMode) – setting which determines if we should delete or not delete or keep for keep_days

  • compare_version_mode (b2sdk.v2.CompareVersionMode) – how to compare the source and destination files to find new ones

  • compare_threshold (int) – should be greater than 0, default is 0

  • keep_days (int) – if keep_days_or_delete is b2sdk.v2.KeepOrDeleteMode.KEEP_BEFORE_DELETE, then this should be greater than 0

  • sync_policy_manager (SyncPolicyManager) – object which decides what to do with each file (upload, download, delete, copy, hide etc)

  • upload_mode (b2sdk.v2.UploadMode) – determines how file uploads are handled

  • absolute_minimum_part_size (int) – minimum file part size for large files

sync_folders(source_folder: ~b2sdk.scan.folder.AbstractFolder, dest_folder: ~b2sdk.scan.folder.AbstractFolder, now_millis: int, reporter: ~typing.Optional[~b2sdk.sync.report.SyncReport], encryption_settings_provider: ~b2sdk.sync.encryption_provider.AbstractSyncEncryptionSettingsProvider = <b2sdk.sync.encryption_provider.ServerDefaultSyncEncryptionSettingsProvider object>)[source]

Syncs two folders. Always ensures that every file in the source is also in the destination. Deletes any file versions in the destination older than history_days.

Parameters:
  • source_folder – source folder object

  • dest_folder – destination folder object

  • now_millis – current time in milliseconds

  • reporter – progress reporter

  • encryption_settings_provider – encryption setting provider