BlobServiceClient クラス

アカウント レベルで Blob Service と対話するクライアント。

このクライアントは、アカウントのプロパティを取得および構成する操作と、アカウント内のコンテナーの一覧表示、作成、削除を行う操作を提供します。 特定のコンテナーまたは BLOB に関連する操作の場合、これらのエンティティのクライアントは 、get_client 関数を使用して取得することもできます。

その他のオプション構成については、 こちらをクリックしてください。

継承
azure.storage.blob._shared.base_client.StorageAccountHostsMixin
BlobServiceClient
azure.storage.blob._encryption.StorageEncryptionMixin
BlobServiceClient

コンストラクター

BlobServiceClient(account_url: str, credential: str | Dict[str, str] | AzureNamedKeyCredential | AzureSasCredential | TokenCredential | None = None, **kwargs: Any)

パラメーター

account_url
str
必須

BLOB ストレージ アカウントの URL。 URL パスに含まれるその他のエンティティ (コンテナーや BLOB など) は破棄されます。 この URL は、必要に応じて SAS トークンで認証できます。

credential
既定値: None

認証に使用する資格情報。 アカウント URL に SAS トークンが既に含まれている場合、これは省略可能です。 値には、SAS トークン文字列、azure.core.credentials の AzureSasCredential または AzureNamedKeyCredential のインスタンス、アカウント共有アクセス キー、または azure.identity の TokenCredentials クラスのインスタンスを指定できます。 リソース URI に SAS トークンが既に含まれている場合、明示的な資格情報を優先して無視されます

  • 競合する SAS トークンによって ValueError が発生する AzureSasCredential の場合を除きます。 AzureNamedKeyCredential のインスタンスを使用する場合は、"name" をストレージ アカウント名に、"key" をストレージ アカウント キーにする必要があります。
api_version
str

要求に使用するストレージ API バージョン。 既定値は、現在の SDK と互換性のある最新のサービス バージョンです。 古いバージョンに設定すると、機能の互換性が低下する可能性があります。

バージョン 12.2.0 の新機能。

secondary_hostname
str

セカンダリ エンドポイントのホスト名。

max_block_size
int

ブロック BLOB をチャンク単位でアップロードするための最大チャンク サイズ。 既定値は 4*1024*1024 または 4 MB です。

max_single_put_size
int

BLOB サイズが max_single_put_size 以下の場合、BLOB は http PUT 要求を 1 つだけ使用してアップロードされます。 BLOB サイズが max_single_put_size より大きい場合、BLOB はチャンクでアップロードされます。 既定値は 64*1024*1024 または 64 MB です。

min_large_block_upload_threshold
int

ブロック BLOB をアップロードするときにメモリ効率の高いアルゴリズムを使用するために必要な最小チャンク サイズ。 既定値は 4*1024*1024+1 です。

use_byte_buffer
bool

ブロック BLOB のアップロードにはバイト バッファーを使用します。 既定値は False です。

max_page_size
int

ページ BLOB をアップロードするための最大チャンク サイズ。 既定値は 4*1024*1024 または 4 MB です。

max_single_get_size
int

1 回の呼び出しでダウンロードされる BLOB の最大サイズ。超過した部分はチャンクでダウンロードされます (並列である可能性があります)。 既定値は 32*1024*1024 または 32 MB です。

max_chunk_get_size
int

BLOB のダウンロードに使用される最大チャンク サイズ。 既定値は 4*1024*1024 または 4 MB です。

メソッド

close

このメソッドは、クライアントによって開かれたソケットを閉じる方法です。 コンテキスト マネージャーで を使用する場合は使用する必要はありません。

create_container

指定したアカウントの下に新しいコンテナーを作成します。

同じ名前のコンテナーが既に存在する場合は、ResourceExistsError が発生します。 このメソッドは、新しく作成されたコンテナーと対話するクライアントを返します。

delete_container

指定したコンテナーに削除のマークを付けます。

コンテナーとその中に含まれている BLOB は、後でガベージ コレクション中に削除されます。 コンテナーが見つからない場合は、ResourceNotFoundError が発生します。

find_blobs_by_tags

フィルター BLOB 操作を使用すると、呼び出し元は、特定の検索式に一致するタグを持つすべてのコンテナーの BLOB を一覧表示できます。 フィルター BLOB はストレージ アカウント内のすべてのコンテナーを検索しますが、式内のスコープを 1 つのコンテナーに設定できます。

from_connection_string

接続文字列から BlobServiceClient を作成します。

get_account_information

ストレージ アカウントに関連する情報を取得します。

ユーザーがコンテナーまたは BLOB への SAS を持っている場合も、情報を取得できます。 返されるディクショナリのキーには、'sku_name' と 'account_kind' が含まれます。

get_blob_client

指定した BLOB と対話するクライアントを取得します。

BLOB がまだ存在している必要はありません。

get_container_client

指定したコンテナーと対話するクライアントを取得します。

コンテナーがまだ存在している必要はありません。

get_service_properties

Azure Storage Analyticsを含むストレージ アカウントの BLOB サービスのプロパティを取得します。

get_service_stats

BLOB Service のレプリケーションに関連する統計情報を取得します。

これは、ストレージ アカウントに対して読み取りアクセス geo 冗長レプリケーションが有効になっている場合にのみ使用できます。

地理冗長レプリケーションでは、Azure ストレージによって 2 か所でデータの持続性が維持されます。 両方の場所で、Azure ストレージは継続的にデータの複数の正常なレプリカを維持します。 データの読み取り、作成、更新、または削除を行う場所は、1 次ストレージ アカウント拠点です。 プライマリの場所は、Azure Management Azure クラシック ポータル (米国中北部など) を使用してアカウントを作成するときに選択したリージョンに存在します。 データのレプリケート先の場所が、2 次拠点です。 2 次拠点は 1 次拠点の場所に基づいて自動的に決められ、1 次拠点と同じ地域にある 2 つ目のデータ センター内に設定されます。 読み取りアクセスの地理冗長レプリケーションがストレージ アカウントで有効な場合は、2 次拠点から読み取り専用アクセスを使用できます。

get_user_delegation_key

SAS トークンに署名するためにユーザー委任キーを取得します。 この要求を成功させるには、サービス オブジェクトにトークン資格情報が存在する必要があります。

list_containers

指定したアカウントのコンテナーを一覧表示するジェネレーターを返します。

ジェネレーターは、サービスによって返された継続トークンに遅れて従い、すべてのコンテナーが返されたときに停止します。

set_service_properties

Azure Storage Analyticsを含むストレージ アカウントの BLOB サービスのプロパティを設定します。

要素 (analytics_logging など) が None のままの場合、その機能に対するサービスの既存の設定は保持されます。

undelete_container

論理的に削除されたコンテナーを復元します。

操作は、削除アイテム保持ポリシーで設定された指定した日数以内に使用された場合にのみ成功します。

バージョン 12.4.0 の新機能: この操作は API バージョン '2019-12-12' で導入されました。

close

このメソッドは、クライアントによって開かれたソケットを閉じる方法です。 コンテキスト マネージャーで を使用する場合は使用する必要はありません。

close()

create_container

指定したアカウントの下に新しいコンテナーを作成します。

同じ名前のコンテナーが既に存在する場合は、ResourceExistsError が発生します。 このメソッドは、新しく作成されたコンテナーと対話するクライアントを返します。

create_container(name: str, metadata: Dict[str, str] | None = None, public_access: PublicAccess | str | None = None, **kwargs) -> ContainerClient

パラメーター

name
str
必須

作成するコンテナーの名前。

metadata
dict(str, str)
必須

メタデータとしてコンテナーに関連付ける名前と値のペアを持つディクテーション。 例: {'Category':'test'}

public_access
str または PublicAccess
必須

使用できる値は、'container'、'blob' です。

container_encryption_scope
dict または ContainerEncryptionScope

コンテナーに設定し、今後のすべての書き込みに使用する既定の暗号化スコープを指定します。

バージョン 12.2.0 の新機能。

timeout
int

操作のサーバー側タイムアウトを秒単位で設定します。 詳細については、 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations を参照してください。 この値は、クライアントで追跡または検証されません。 クライアント側のネットワーク タイムアウトを構成するには、 こちらを参照してください

の戻り値の型 :

delete_container

指定したコンテナーに削除のマークを付けます。

コンテナーとその中に含まれている BLOB は、後でガベージ コレクション中に削除されます。 コンテナーが見つからない場合は、ResourceNotFoundError が発生します。

delete_container(container: ContainerProperties | str, lease: BlobLeaseClient | str | None = None, **kwargs) -> None

パラメーター

container
str または ContainerProperties
必須

削除するコンテナー。 コンテナーの名前、または ContainerProperties のインスタンスを指定できます。

lease
必須

指定した場合、delete_containerはコンテナーのリースがアクティブで、この ID と一致する場合にのみ成功します。 コンテナーにアクティブなリースがある場合は必須です。

if_modified_since
datetime

DateTime 値。 Azure では、渡された日付値が UTC であると想定しています。 タイムゾーンが含まれている場合、UTC 以外の日時は UTC に変換されます。 タイムゾーン情報なしで日付が渡された場合は、UTC と見なされます。 このヘッダーを指定すると、指定した時刻以降にリソースが変更されている場合に限り操作が実行されます。

if_unmodified_since
datetime

DateTime 値。 Azure では、渡された日付値が UTC であると想定しています。 タイムゾーンが含まれている場合、UTC 以外の日時は UTC に変換されます。 タイムゾーン情報なしで日付が渡された場合は、UTC と見なされます。 このヘッダーを指定すると、指定した日付/時刻以降にリソースが変更されていない場合に限り操作が実行されます。

etag
str

ETag 値またはワイルドカード文字 (*)。 リソースが変更されたかどうかをチェックし、match_condition パラメーターで指定された条件に従って動作するために使用されます。

match_condition
MatchConditions

etag で使用する一致条件。

timeout
int

操作のサーバー側タイムアウトを秒単位で設定します。 詳細については、 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations を参照してください。 この値は、クライアントで追跡または検証されません。 クライアント側のネットワーク タイムアウトを構成するには、 こちらを参照してください

の戻り値の型 :

find_blobs_by_tags

フィルター BLOB 操作を使用すると、呼び出し元は、特定の検索式に一致するタグを持つすべてのコンテナーの BLOB を一覧表示できます。 フィルター BLOB はストレージ アカウント内のすべてのコンテナーを検索しますが、式内のスコープを 1 つのコンテナーに設定できます。

find_blobs_by_tags(filter_expression: str, **kwargs: Any) -> ItemPaged[FilteredBlob]

パラメーター

filter_expression
str
必須

指定した条件に一致するタグを持つ BLOB を検索する式。 例: ""yourtagname"='firsttag' と "yourtagname2"='secondtag'" コンテナーを指定するには、例: "@container='containerName' と "Name"='C'"

results_per_page
int

ページ分割時のページあたりの最大結果。

timeout
int

操作のサーバー側タイムアウトを秒単位で設定します。 詳細については、 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations を参照してください。 この値は、クライアントで追跡または検証されません。 クライアント側のネットワーク タイムアウトを構成するには、 こちらを参照してください。

戻り値

BlobProperties の iterable (自動ページング) 応答。

の戻り値の型 :

from_connection_string

接続文字列から BlobServiceClient を作成します。

from_connection_string(conn_str: str, credential: str | Dict[str, str] | AzureNamedKeyCredential | AzureSasCredential | TokenCredential | None = None, **kwargs: Any) -> Self

パラメーター

conn_str
str
必須

Azure Storage アカウントへの接続文字列。

credential
既定値: None

認証に使用する資格情報。 これは、アカウント URL に SAS トークンが既に含まれている場合、または接続文字列に既に共有アクセス キーの値がある場合は省略可能です。 値には、SAS トークン文字列、azure.core.credentials の AzureSasCredential または AzureNamedKeyCredential のインスタンス、アカウント共有アクセス キー、または azure.identity からの TokenCredentials クラスのインスタンスを指定できます。 ここで指定した資格情報は、接続文字列内の資格情報よりも優先されます。 AzureNamedKeyCredential のインスタンスを使用する場合は、"name" をストレージ アカウント名に、"key" をストレージ アカウント キーにする必要があります。

戻り値

BLOB サービス クライアント。

の戻り値の型 :

get_account_information

ストレージ アカウントに関連する情報を取得します。

ユーザーがコンテナーまたは BLOB への SAS を持っている場合も、情報を取得できます。 返されるディクショナリのキーには、'sku_name' と 'account_kind' が含まれます。

get_account_information(**kwargs: Any) -> Dict[str, str]

戻り値

アカウント情報 (SKU とアカウントの種類) のディクテーション。

の戻り値の型 :

get_blob_client

指定した BLOB と対話するクライアントを取得します。

BLOB がまだ存在している必要はありません。

get_blob_client(container: ContainerProperties | str, blob: BlobProperties | str, snapshot: Dict[str, Any] | str | None = None, *, version_id: str | None = None) -> BlobClient

パラメーター

container
str または ContainerProperties
必須

BLOB が存在するコンテナー。 コンテナーの名前、または ContainerProperties のインスタンスを指定できます。

blob
str または BlobProperties
必須

対話する BLOB。 BLOB の名前、または BlobProperties のインスタンスを指定できます。

snapshot
str または dict(str, Any)
既定値: None

操作対象の省略可能な BLOB スナップショット。 これは、スナップショットの ID、または によってcreate_snapshot返されるディクショナリ出力のいずれかです。

version_id
str

version id パラメーターは不透明な DateTime 値であり、存在する場合は、操作する BLOB のバージョンを指定します。

戻り値

BlobClient。

の戻り値の型 :

get_container_client

指定したコンテナーと対話するクライアントを取得します。

コンテナーがまだ存在している必要はありません。

get_container_client(container: ContainerProperties | str) -> ContainerClient

パラメーター

container
str または ContainerProperties
必須

コンテナー。 コンテナーの名前、または ContainerProperties のインスタンスを指定できます。

戻り値

ContainerClient。

の戻り値の型 :

get_service_properties

Azure Storage Analyticsを含むストレージ アカウントの BLOB サービスのプロパティを取得します。

get_service_properties(**kwargs: Any) -> Dict[str, Any]

パラメーター

timeout
int

操作のサーバー側タイムアウトを秒単位で設定します。 詳細については、 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations を参照してください。 この値は、クライアントで追跡または検証されません。 クライアント側のネットワーク タイムアウトを構成するには、 こちらを参照してください。

戻り値

分析ログ、時間/分メトリック、cors ルールなどの BLOB サービス プロパティを含むオブジェクト。

の戻り値の型 :

get_service_stats

BLOB Service のレプリケーションに関連する統計情報を取得します。

これは、ストレージ アカウントに対して読み取りアクセス geo 冗長レプリケーションが有効になっている場合にのみ使用できます。

地理冗長レプリケーションでは、Azure ストレージによって 2 か所でデータの持続性が維持されます。 両方の場所で、Azure ストレージは継続的にデータの複数の正常なレプリカを維持します。 データの読み取り、作成、更新、または削除を行う場所は、1 次ストレージ アカウント拠点です。 プライマリの場所は、Azure Management Azure クラシック ポータル (米国中北部など) を使用してアカウントを作成するときに選択したリージョンに存在します。 データのレプリケート先の場所が、2 次拠点です。 2 次拠点は 1 次拠点の場所に基づいて自動的に決められ、1 次拠点と同じ地域にある 2 つ目のデータ センター内に設定されます。 読み取りアクセスの地理冗長レプリケーションがストレージ アカウントで有効な場合は、2 次拠点から読み取り専用アクセスを使用できます。

get_service_stats(**kwargs: Any) -> Dict[str, Any]

パラメーター

timeout
int

操作のサーバー側タイムアウトを秒単位で設定します。 詳細については、 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations を参照してください。 この値は、クライアントで追跡または検証されません。 クライアント側のネットワーク タイムアウトを構成するには、 こちらを参照してください。

戻り値

BLOB サービスの統計情報です。

の戻り値の型 :

get_user_delegation_key

SAS トークンに署名するためにユーザー委任キーを取得します。 この要求を成功させるには、サービス オブジェクトにトークン資格情報が存在する必要があります。

get_user_delegation_key(key_start_time: datetime, key_expiry_time: datetime, **kwargs: Any) -> UserDelegationKey

パラメーター

key_start_time
datetime
必須

DateTime 値。 キーが有効になるタイミングを示します。

key_expiry_time
datetime
必須

DateTime 値。 キーが有効でなくなるタイミングを示します。

timeout
int

操作のサーバー側タイムアウトを秒単位で設定します。 詳細については、 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations を参照してください。 この値は、クライアントで追跡または検証されません。 クライアント側のネットワーク タイムアウトを構成するには、 こちらを参照してください。

戻り値

ユーザー委任キー。

の戻り値の型 :

list_containers

指定したアカウントのコンテナーを一覧表示するジェネレーターを返します。

ジェネレーターは、サービスによって返された継続トークンに遅れて従い、すべてのコンテナーが返されたときに停止します。

list_containers(name_starts_with: str | None = None, include_metadata: bool | None = False, **kwargs) -> ItemPaged[ContainerProperties]

パラメーター

name_starts_with
str
必須

結果をフィルター処理して、名前が指定したプレフィックスで始まるコンテナーのみを返します。

include_metadata
bool
必須

応答で返されるコンテナー メタデータを指定します。 既定値は Falseです。

include_deleted
bool

削除されたコンテナーを応答で返すように指定します。 これは、コンテナーの復元が有効なアカウント用です。 既定値は Falseです。 .. versionadded:: 12.4.0

include_system
bool

システム コンテナーを含める必要があることを指定するフラグ。 .. versionadded:: 12.10.0

results_per_page
int

API 呼び出しごとに取得するコンテナー名の最大数。 要求で指定されていない場合、サーバーは最大 5,000 個の項目を返します。

timeout
int

操作のサーバー側タイムアウトを秒単位で設定します。 詳細については、 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations を参照してください。 この値は、クライアントで追跡または検証されません。 クライアント側のネットワーク タイムアウトを構成するには、 こちらを参照してください。

戻り値

ContainerProperties の iterable (自動ページング) です。

の戻り値の型 :

set_service_properties

Azure Storage Analyticsを含むストレージ アカウントの BLOB サービスのプロパティを設定します。

要素 (analytics_logging など) が None のままの場合、その機能に対するサービスの既存の設定は保持されます。

set_service_properties(analytics_logging: BlobAnalyticsLogging | None = None, hour_metrics: Metrics | None = None, minute_metrics: Metrics | None = None, cors: List[CorsRule] | None = None, target_version: str | None = None, delete_retention_policy: RetentionPolicy | None = None, static_website: StaticWebsite | None = None, **kwargs) -> None

パラメーター

analytics_logging
BlobAnalyticsLogging
必須

Azure Analytics の Logging 設定をグループ化します。

hour_metrics
Metrics
必須

時間メトリック設定では、API 別にグループ化された要求統計の概要が BLOB の時間単位の集計で提供されます。

minute_metrics
Metrics
必須

分単位のメトリック設定では、BLOB の 1 分ごとの要求統計が提供されます。

cors
list[CorsRule]
必須

リストには、最大 5 つの CorsRule 要素を含めることができます。 空のリストを指定すると、すべての CORS ルールが削除され、サービスに対して CORS が無効になります。

target_version
str
必須

受信要求のバージョンが指定されていない場合に要求に使用する既定のバージョンを示します。

delete_retention_policy
RetentionPolicy
必須

削除アイテム保持ポリシーでは、削除された BLOB を保持するかどうかを指定します。 また、保持する BLOB の日数とバージョンも指定します。

static_website
StaticWebsite
必須

静的 Web サイト機能を有効にするかどうかを指定し、はい場合はインデックス ドキュメントと使用する 404 エラー ドキュメントを示します。

timeout
int

操作のサーバー側タイムアウトを秒単位で設定します。 詳細については、 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations を参照してください。 この値は、クライアントで追跡または検証されません。 クライアント側のネットワーク タイムアウトを構成するには、 こちらを参照してください。

の戻り値の型 :

undelete_container

論理的に削除されたコンテナーを復元します。

操作は、削除アイテム保持ポリシーで設定された指定した日数以内に使用された場合にのみ成功します。

バージョン 12.4.0 の新機能: この操作は API バージョン '2019-12-12' で導入されました。

undelete_container(deleted_container_name: str, deleted_container_version: str, **kwargs: Any) -> ContainerClient

パラメーター

deleted_container_name
str
必須

復元する削除済みコンテナーの名前を指定します。

deleted_container_version
str
必須

復元する削除済みコンテナーのバージョンを指定します。

timeout
int

操作のサーバー側タイムアウトを秒単位で設定します。 詳細については、 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations を参照してください。 この値は、クライアントで追跡または検証されません。 クライアント側のネットワーク タイムアウトを構成するには、 こちらを参照してください。

戻り値

削除されていない ContainerClient。

の戻り値の型 :

属性

api_version

要求に使用される Storage API のバージョン。

location_mode

クライアントが現在使用している場所モード。

既定では、これは "プライマリ" になります。 オプションには、"primary" と "secondary" が含まれます。

primary_endpoint

完全なプライマリ エンドポイント URL。

primary_hostname

プライマリ エンドポイントのホスト名。

secondary_endpoint

完全なセカンダリ エンドポイント URL (構成されている場合)。

使用できない場合は、ValueError が発生します。 セカンダリ ホスト名を明示的に指定するには、インスタンス化時に省略可能な secondary_hostname キーワード (keyword) 引数を使用します。

例外

secondary_hostname

セカンダリ エンドポイントのホスト名。

使用できない場合、これは None になります。 セカンダリ ホスト名を明示的に指定するには、インスタンス化時に省略可能な secondary_hostname キーワード (keyword) 引数を使用します。

url

SAS トークン (使用されている場合) を含む、このエンティティへの完全なエンドポイント URL。

これは、現在 location_modeの に応じて、プライマリ エンドポイントまたはセカンダリ エンドポイントのいずれかになります。 :returns: SAS トークン (使用されている場合) を含む、このエンティティへの完全なエンドポイント URL。 :rtype: str