b2sdk.raw_simulator
– B2 raw api simulator
- b2sdk.raw_simulator.get_bytes_range(data_bytes, bytes_range)[source]
Slice bytes array using bytes range
- class b2sdk.raw_simulator.KeySimulator(account_id, name, application_key_id, key, capabilities, expiration_timestamp_or_none, bucket_id_or_none, bucket_name_or_none, name_prefix_or_none)[source]
Bases:
object
Hold information about one application key, which can be either a master application key, or one created with create_key().
- __init__(account_id, name, application_key_id, key, capabilities, expiration_timestamp_or_none, bucket_id_or_none, bucket_name_or_none, name_prefix_or_none)[source]
- class b2sdk.raw_simulator.PartSimulator(file_id, part_number, content_length, content_sha1, part_data)[source]
Bases:
object
- class b2sdk.raw_simulator.FileSimulator(account_id, bucket, file_id, action, name, content_type, content_sha1, file_info, data_bytes, upload_timestamp, range_=None, server_side_encryption=None, file_retention=None, legal_hold=LegalHold.UNSET, replication_status=None, cache_control=None)[source]
Bases:
object
One of three: an unfinished large file, a finished file, or a deletion marker.
- Parameters:
server_side_encryption (EncryptionSetting | None) –
file_retention (FileRetentionSetting | None) –
legal_hold (LegalHold) –
replication_status (ReplicationStatus | None) –
cache_control (str | None) –
- CHECK_ENCRYPTION = True
- SPECIAL_FILE_INFOS = {'b2-cache-control': 'Cache-Control', 'b2-content-disposition': 'Content-Disposition', 'b2-content-encoding': 'Content-Encoding', 'b2-content-language': 'Content-Language', 'b2-expires': 'Expires'}
- __init__(account_id, bucket, file_id, action, name, content_type, content_sha1, file_info, data_bytes, upload_timestamp, range_=None, server_side_encryption=None, file_retention=None, legal_hold=LegalHold.UNSET, replication_status=None, cache_control=None)[source]
- Parameters:
server_side_encryption (EncryptionSetting | None) –
file_retention (FileRetentionSetting | None) –
legal_hold (LegalHold) –
replication_status (ReplicationStatus | None) –
cache_control (str | None) –
- sort_key()[source]
Return a key that can be used to sort the files in a bucket in the order that b2_list_file_versions returns them.
- check_encryption(request_encryption)[source]
- Parameters:
request_encryption (EncryptionSetting | None) –
- class b2sdk.raw_simulator.FakeRequest(url, headers)
Bases:
tuple
- headers
Alias for field number 1
- url
Alias for field number 0
- class b2sdk.raw_simulator.FakeResponse(account_auth_token_or_none, file_sim, url, range_=None)[source]
Bases:
object
- property request
- class b2sdk.raw_simulator.BucketSimulator(api, account_id, bucket_id, bucket_name, bucket_type, bucket_info=None, cors_rules=None, lifecycle_rules=None, options_set=None, default_server_side_encryption=None, is_file_lock_enabled=None, replication=None)[source]
Bases:
object
- FIRST_FILE_NUMBER = 9999
- FIRST_FILE_ID = '9999'
- FILE_SIMULATOR_CLASS
alias of
FileSimulator
- RESPONSE_CLASS
alias of
FakeResponse
- MAX_SIMPLE_COPY_SIZE = 200
- __init__(api, account_id, bucket_id, bucket_name, bucket_type, bucket_info=None, cors_rules=None, lifecycle_rules=None, options_set=None, default_server_side_encryption=None, is_file_lock_enabled=None, replication=None)[source]
- download_file_by_id(account_auth_token_or_none, file_id, url, range_=None, encryption=None)[source]
- Parameters:
encryption (EncryptionSetting | None) –
- download_file_by_name(account_auth_token_or_none, file_name, url, range_=None, encryption=None)[source]
- Parameters:
encryption (EncryptionSetting | None) –
- update_file_retention(account_auth_token, file_id, file_name, file_retention, bypass_governance=False)[source]
- Parameters:
file_retention (
FileRetentionSetting
) –bypass_governance (
bool
) –
- update_file_legal_hold(account_auth_token, file_id, file_name, legal_hold)[source]
- Parameters:
legal_hold (
LegalHold
) –
- copy_file(account_auth_token, file_id, new_file_name, bytes_range=None, metadata_directive=None, content_type=None, file_info=None, destination_bucket_id=None, destination_server_side_encryption=None, source_server_side_encryption=None, file_retention=None, legal_hold=None, cache_control=None)[source]
- Parameters:
destination_server_side_encryption (EncryptionSetting | None) –
source_server_side_encryption (EncryptionSetting | None) –
file_retention (FileRetentionSetting | None) –
legal_hold (LegalHold | None) –
cache_control (str | None) –
- list_file_names(account_auth_token, start_file_name=None, max_file_count=None, prefix=None)[source]
- list_file_versions(account_auth_token, start_file_name=None, start_file_id=None, max_file_count=None, prefix=None)[source]
- list_unfinished_large_files(account_auth_token, start_file_id=None, max_file_count=None, prefix=None)[source]
- start_large_file(account_auth_token, file_name, content_type, file_info, server_side_encryption=None, file_retention=None, legal_hold=None, custom_upload_timestamp=None, cache_control=None)[source]
- Parameters:
server_side_encryption (EncryptionSetting | None) –
file_retention (FileRetentionSetting | None) –
legal_hold (LegalHold | None) –
custom_upload_timestamp (int | None) –
cache_control (str | None) –
- upload_file(upload_id, upload_auth_token, file_name, content_length, content_type, content_sha1, file_info, data_stream, server_side_encryption=None, file_retention=None, legal_hold=None, custom_upload_timestamp=None, cache_control=None)[source]
- Parameters:
upload_id (str) –
upload_auth_token (str) –
file_name (str) –
content_length (int) –
content_type (str) –
content_sha1 (str) –
file_info (dict) –
server_side_encryption (EncryptionSetting | None) –
file_retention (FileRetentionSetting | None) –
legal_hold (LegalHold | None) –
custom_upload_timestamp (int | None) –
cache_control (str | None) –
- upload_part(file_id, part_number, content_length, sha1_sum, input_stream, server_side_encryption=None)[source]
- Parameters:
server_side_encryption (EncryptionSetting | None) –
- class b2sdk.raw_simulator.RawSimulator(b2_http=None)[source]
Bases:
AbstractRawApi
Implement the same interface as B2RawHTTPApi by simulating all of the calls and keeping state in memory.
The intended use for this class is for unit tests that test things built on top of B2RawHTTPApi.
- BUCKET_SIMULATOR_CLASS
alias of
BucketSimulator
- API_URL = 'http://api.example.com'
- S3_API_URL = 'http://s3.api.example.com'
- DOWNLOAD_URL = 'http://download.example.com'
- MIN_PART_SIZE = 200
- MAX_PART_ID = 10000
- MAX_DURATION_IN_SECONDS = 86400000
- UPLOAD_PART_MATCHER = re.compile('https://upload.example.com/part/([^/]*)')
- UPLOAD_URL_MATCHER = re.compile('https://upload.example.com/([^/]*)/([^/]*)')
- DOWNLOAD_URL_MATCHER = re.compile('http://download.example.com(?:/b2api/v[0-9]+/b2_download_file_by_id\\?fileId=(?P<file_id>[^/]+)|/file/(?P<bucket_name>[^/]+)/(?P<file_name>.+))$')
- expire_auth_token(auth_token)[source]
Simulate the auth token expiring.
The next call that tries to use this auth token will get an auth_token_expired error.
- set_upload_errors(errors)[source]
Store a sequence of exceptions to raise on upload. Each one will be raised in turn, until they are all gone. Then the next upload will succeed.
- create_bucket(api_url, account_auth_token, account_id, bucket_name, bucket_type, bucket_info=None, cors_rules=None, lifecycle_rules=None, default_server_side_encryption=None, is_file_lock_enabled=None, replication=None)[source]
- create_key(api_url, account_auth_token, account_id, capabilities, key_name, valid_duration_seconds, bucket_id, name_prefix)[source]
- update_file_retention(api_url, account_auth_token, file_id, file_name, file_retention, bypass_governance=False)[source]
- Parameters:
file_retention (
FileRetentionSetting
) –bypass_governance (
bool
) –
- update_file_legal_hold(api_url, account_auth_token, file_id, file_name, legal_hold)[source]
- Parameters:
legal_hold (
bool
) –
- download_file_from_url(account_auth_token_or_none, url, range_=None, encryption=None)[source]
- Parameters:
encryption (EncryptionSetting | None) –
- get_download_authorization(api_url, account_auth_token, bucket_id, file_name_prefix, valid_duration_in_seconds)[source]
- copy_file(api_url, account_auth_token, source_file_id, new_file_name, bytes_range=None, metadata_directive=None, content_type=None, file_info=None, destination_bucket_id=None, destination_server_side_encryption=None, source_server_side_encryption=None, file_retention=None, legal_hold=None, cache_control=None)[source]
- Parameters:
file_retention (FileRetentionSetting | None) –
legal_hold (LegalHold | None) –
cache_control (str | None) –
- copy_part(api_url, account_auth_token, source_file_id, large_file_id, part_number, bytes_range=None, destination_server_side_encryption=None, source_server_side_encryption=None)[source]
- Parameters:
destination_server_side_encryption (EncryptionSetting | None) –
source_server_side_encryption (EncryptionSetting | None) –
- list_file_names(api_url, account_auth_token, bucket_id, start_file_name=None, max_file_count=None, prefix=None)[source]
- list_file_versions(api_url, account_auth_token, bucket_id, start_file_name=None, start_file_id=None, max_file_count=None, prefix=None)[source]
- list_keys(api_url, account_auth_token, account_id, max_key_count=1000, start_application_key_id=None)[source]
- list_unfinished_large_files(api_url, account_auth_token, bucket_id, start_file_id=None, max_file_count=None, prefix=None)[source]
- start_large_file(api_url, account_auth_token, bucket_id, file_name, content_type, file_info, server_side_encryption=None, file_retention=None, legal_hold=None, custom_upload_timestamp=None, cache_control=None)[source]
- Parameters:
server_side_encryption (EncryptionSetting | None) –
file_retention (FileRetentionSetting | None) –
legal_hold (LegalHold | None) –
custom_upload_timestamp (int | None) –
cache_control (str | None) –
- update_bucket(api_url, account_auth_token, account_id, bucket_id, bucket_type=None, bucket_info=None, cors_rules=None, lifecycle_rules=None, if_revision_is=None, default_server_side_encryption=None, default_retention=None, replication=None, is_file_lock_enabled=None)[source]
- classmethod get_upload_file_headers(upload_auth_token, file_name, content_length, content_type, content_sha1, file_info, server_side_encryption, file_retention, legal_hold, custom_upload_timestamp=None, cache_control=None)[source]
- Parameters:
upload_auth_token (str) –
file_name (str) –
content_length (int) –
content_type (str) –
content_sha1 (str) –
file_info (dict) –
server_side_encryption (EncryptionSetting | None) –
file_retention (FileRetentionSetting | None) –
legal_hold (LegalHold | None) –
custom_upload_timestamp (int | None) –
cache_control (str | None) –
- Return type:
- upload_file(upload_url, upload_auth_token, file_name, content_length, content_type, content_sha1, file_info, data_stream, server_side_encryption=None, file_retention=None, legal_hold=None, custom_upload_timestamp=None, cache_control=None)[source]
- Parameters:
upload_url (str) –
upload_auth_token (str) –
file_name (str) –
content_length (int) –
content_type (str) –
content_sha1 (str) –
file_info (dict) –
server_side_encryption (EncryptionSetting | None) –
file_retention (FileRetentionSetting | None) –
legal_hold (LegalHold | None) –
custom_upload_timestamp (int | None) –
cache_control (str | None) –
- upload_part(upload_url, upload_auth_token, part_number, content_length, sha1_sum, input_stream, server_side_encryption=None)[source]
- Parameters:
server_side_encryption (EncryptionSetting | None) –