BlobServiceClient クラス
アカウント レベルで Blob Service と対話するクライアント。
このクライアントは、アカウントのプロパティを取得および構成する操作と、アカウント内のコンテナーの一覧表示、作成、削除を行う操作を提供します。 特定のコンテナーまたは BLOB に関連する操作の場合、これらのエンティティのクライアントは 、get_client 関数を使用して取得することもできます。
その他のオプション構成については、 こちらをクリックしてください。
- 継承
-
azure.storage.blob._shared.base_client.StorageAccountHostsMixinBlobServiceClientazure.storage.blob._encryption.StorageEncryptionMixinBlobServiceClient
コンストラクター
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
認証に使用する資格情報。 アカウント 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 です。
例
アカウント URL と資格情報を使用して BlobServiceClient を作成する。
from azure.storage.blob import BlobServiceClient
blob_service_client = BlobServiceClient(account_url=self.url, credential=self.shared_access_key)
Azure ID 資格情報を使用して BlobServiceClient を作成する。
# Get a token credential for authentication
from azure.identity import ClientSecretCredential
token_credential = ClientSecretCredential(
self.active_directory_tenant_id,
self.active_directory_application_id,
self.active_directory_application_secret
)
# Instantiate a BlobServiceClient using a token credential
from azure.storage.blob import BlobServiceClient
blob_service_client = BlobServiceClient(account_url=self.oauth_url, credential=token_credential)
メソッド
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' で導入されました。 |
create_container
指定したアカウントの下に新しいコンテナーを作成します。
同じ名前のコンテナーが既に存在する場合は、ResourceExistsError が発生します。 このメソッドは、新しく作成されたコンテナーと対話するクライアントを返します。
create_container(name: str, metadata: Dict[str, str] | None = None, public_access: PublicAccess | str | None = None, **kwargs) -> ContainerClient
パラメーター
- container_encryption_scope
- dict または ContainerEncryptionScope
コンテナーに設定し、今後のすべての書き込みに使用する既定の暗号化スコープを指定します。
バージョン 12.2.0 の新機能。
- timeout
- int
操作のサーバー側タイムアウトを秒単位で設定します。 詳細については、 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations を参照してください。 この値は、クライアントで追跡または検証されません。 クライアント側のネットワーク タイムアウトを構成するには、 こちらを参照してください。
の戻り値の型 :
例
BLOB サービスでのコンテナーの作成。
try:
new_container = blob_service_client.create_container("containerfromblobservice")
properties = new_container.get_container_properties()
except ResourceExistsError:
print("Container already exists.")
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 を参照してください。 この値は、クライアントで追跡または検証されません。 クライアント側のネットワーク タイムアウトを構成するには、 こちらを参照してください。
の戻り値の型 :
例
BLOB サービス内のコンテナーを削除しています。
# Delete container if it exists
try:
blob_service_client.delete_container("containerfromblobservice")
except ResourceNotFoundError:
print("Container already deleted.")
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
パラメーター
- credential
認証に使用する資格情報。 これは、アカウント URL に既に SAS トークンがある場合、または接続文字列に既に共有アクセス キー値がある場合は省略可能です。 値には、SAS トークン文字列、azure.core.credentials の AzureSasCredential または AzureNamedKeyCredential のインスタンス、アカウント共有アクセス キー、または azure.identity の TokenCredentials クラスのインスタンスを指定できます。 ここで指定した資格情報は、接続文字列内の資格情報よりも優先されます。 AzureNamedKeyCredential のインスタンスを使用する場合は、"name" をストレージ アカウント名に、"key" をストレージ アカウント キーにする必要があります。
戻り値
BLOB サービス クライアント。
の戻り値の型 :
例
接続文字列から BlobServiceClient を作成する。
from azure.storage.blob import BlobServiceClient
blob_service_client = BlobServiceClient.from_connection_string(self.connection_string)
get_account_information
ストレージ アカウントに関連する情報を取得します。
ユーザーがコンテナーまたは BLOB への SAS を持っている場合も、情報を取得できます。 返されるディクショナリのキーには、'sku_name' と 'account_kind' が含まれます。
get_account_information(**kwargs: Any) -> Dict[str, str]
戻り値
アカウント情報 (SKU とアカウントの種類) のディクテーション。
の戻り値の型 :
例
BLOB サービスのアカウント情報の取得。
account_info = blob_service_client.get_account_information()
print('Using Storage SKU: {}'.format(account_info['sku_name']))
get_blob_client
指定した BLOB と対話するクライアントを取得します。
BLOB がまだ存在している必要はありません。
get_blob_client(container: ContainerProperties | str, blob: BlobProperties | str, snapshot: Dict[str, Any] | str | None = None) -> BlobClient
パラメーター
- container
- str または ContainerProperties
BLOB が存在するコンテナー。 コンテナーの名前、または ContainerProperties のインスタンスを指定できます。
操作対象のオプションの BLOB スナップショット。 これは、スナップショットの ID、または によって create_snapshot返されるディクショナリ出力のいずれかです。
戻り値
BlobClient。
の戻り値の型 :
例
特定の BLOB と対話するための BLOB クライアントの取得。
blob_client = blob_service_client.get_blob_client(container="containertest", blob="my_blob")
try:
stream = blob_client.download_blob()
except ResourceNotFoundError:
print("No blob found.")
get_container_client
指定したコンテナーと対話するクライアントを取得します。
コンテナーがまだ存在している必要はありません。
get_container_client(container: ContainerProperties | str) -> ContainerClient
パラメーター
戻り値
ContainerClient。
の戻り値の型 :
例
コンテナー クライアントを特定のコンテナーと対話させる。
# Get a client to interact with a specific container - though it may not yet exist
container_client = blob_service_client.get_container_client("containertest")
try:
for blob in container_client.list_blobs():
print("Found blob: ", blob.name)
except ResourceNotFoundError:
print("Container not found.")
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 サービス プロパティを含むオブジェクト。
の戻り値の型 :
例
BLOB サービスのサービス プロパティを取得します。
properties = blob_service_client.get_service_properties()
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 サービスの統計情報です。
の戻り値の型 :
例
BLOB サービスのサービス統計の取得。
stats = blob_service_client.get_service_stats()
get_user_delegation_key
SAS トークンに署名するためにユーザー委任キーを取得します。 この要求を成功させるには、サービス オブジェクトにトークン資格情報が存在する必要があります。
get_user_delegation_key(key_start_time: datetime, key_expiry_time: datetime, **kwargs: Any) -> UserDelegationKey
パラメーター
- 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]
パラメーター
- 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 (自動ページング) です。
の戻り値の型 :
例
BLOB サービス内のコンテナーを一覧表示します。
# List all containers
all_containers = blob_service_client.list_containers(include_metadata=True)
for container in all_containers:
print(container['name'], container['metadata'])
# Filter results with name prefix
test_containers = blob_service_client.list_containers(name_starts_with='test-')
for container in test_containers:
print(container['name'], container['metadata'])
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
パラメーター
リストには、最大 5 つの CorsRule 要素を含めることができます。 空のリストを指定すると、すべての CORS ルールが削除され、サービスに対して CORS が無効になります。
- 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 を参照してください。 この値は、クライアントで追跡または検証されません。 クライアント側のネットワーク タイムアウトを構成するには、 こちらを参照してください。
の戻り値の型 :
例
BLOB サービスのサービス プロパティを設定する。
# Create service properties
from azure.storage.blob import BlobAnalyticsLogging, Metrics, CorsRule, RetentionPolicy
# Create logging settings
logging = BlobAnalyticsLogging(read=True, write=True, delete=True, retention_policy=RetentionPolicy(enabled=True, days=5))
# Create metrics for requests statistics
hour_metrics = Metrics(enabled=True, include_apis=True, retention_policy=RetentionPolicy(enabled=True, days=5))
minute_metrics = Metrics(enabled=True, include_apis=True,
retention_policy=RetentionPolicy(enabled=True, days=5))
# Create CORS rules
cors_rule = CorsRule(['www.xyz.com'], ['GET'])
cors = [cors_rule]
# Set the service properties
blob_service_client.set_service_properties(logging, hour_metrics, minute_metrics, cors)
undelete_container
論理的に削除されたコンテナーを復元します。
操作は、削除アイテム保持ポリシーで設定された指定した日数以内に使用された場合にのみ成功します。
バージョン 12.4.0 の新機能: この操作は API バージョン '2019-12-12' で導入されました。
undelete_container(deleted_container_name: str, deleted_container_version: str, **kwargs: Any) -> ContainerClient
パラメーター
- timeout
- int
操作のサーバー側タイムアウトを秒単位で設定します。 詳細については、 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations を参照してください。 この値は、クライアントで追跡または検証されません。 クライアント側のネットワーク タイムアウトを構成するには、 こちらを参照してください。
の戻り値の型 :
フィードバック
フィードバックの送信と表示