BlobServiceClient 類別
在帳戶層級與 Blob 服務互動的用戶端。
此用戶端提供作業來擷取和設定帳戶屬性,以及列出、建立和刪除帳戶內的容器。 對於與特定容器或 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)
參數
- credential
要用來驗證的認證。 如果帳戶 URL 已經有 SAS 權杖,則這是選擇性的。 此值可以是 SAS 權杖字串、來自 azure.core.credentials 的 AzureSasCredential 或 AzureNamedKeyCredential 實例、帳戶共用存取金鑰,或來自 azure.identity 的 TokenCredentials 類別實例。 如果資源 URI 已經包含 SAS 權杖,則會忽略此權杖,以使用明確的認證
- 除了 AzureSasCredential 的情況之外,衝突的 SAS 權杖將會引發 ValueError。 如果使用 AzureNamedKeyCredential 的實例,「name」 應該是儲存體帳戶名稱,而 「key」 應該是儲存體帳戶金鑰。
- secondary_hostname
- str
次要端點的主機名稱。
- max_block_size
- int
以區塊方式上傳區塊 Blob 的最大區塊大小。 預設為 41024 1024或 4MB。
- max_single_put_size
- int
如果 Blob 大小小於或等於 max_single_put_size,則 Blob 只會上傳一個 HTTP PUT 要求。 如果 Blob 大小大於 max_single_put_size,Blob 將會以區塊方式上傳。 預設為 641024 1024或 64MB。
- min_large_block_upload_threshold
- int
上傳區塊 Blob 時,使用記憶體有效率演算法所需的最社區塊大小。 預設為 4*1024*1024
+1。
- use_byte_buffer
- bool
針對區塊 Blob 上傳使用位元組緩衝區。 預設為 False。
- max_page_size
- int
上傳分頁 Blob 的最大區塊大小。 預設為 41024 1024或 4MB。
- max_single_get_size
- int
在單一呼叫中下載 Blob 的大小上限,超過的部分會以區塊方式下載, (可能會平行) 。 預設為 321024 1024或 32MB。
- max_chunk_get_size
- int
用於下載 Blob 的最大區塊大小。 預設為 41024 1024或 4MB。
方法
close |
這個方法是關閉用戶端所開啟的通訊端。 與內容管理員搭配使用時,不需要使用它。 |
create_container |
在指定的帳號下建立新的容器。 如果具有相同名稱的容器已經存在,將會引發 ResourceExistsError。 這個方法會傳回要與新建立容器互動的用戶端。 |
delete_container |
標示要刪除的指定容器。 其中包含的容器和任何 Blob 稍後會在記憶體回收時刪除。 如果找不到容器,將會引發 ResourceNotFoundError。 |
find_blobs_by_tags |
篩選 Blob 作業可讓呼叫端列出標籤符合指定搜尋運算式之所有容器的 Blob。 篩選 Blob 會在儲存體帳戶內的所有容器中搜尋,但可以在運算式中限定為單一容器。 |
from_connection_string |
從連接字串建立 BlobServiceClient。 |
get_account_information |
取得儲存體帳戶的相關資訊。 如果使用者具有容器或 Blob 的 SAS,也可以擷取資訊。 傳回字典中的索引鍵包括 'sku_name' 和 'account_kind'。 |
get_blob_client |
取得用戶端以與指定的 Blob 互動。 Blob 不需要已經存在。 |
get_container_client |
取得用戶端以與指定的容器互動。 容器不需要已經存在。 |
get_service_properties |
取得儲存體帳戶 Blob 服務的屬性,包括 Azure 儲存體分析。 |
get_service_stats |
擷取與 Blob 服務的複寫相關的統計資料。 只有在儲存體帳戶啟用讀取權限異地備援複寫時,才能使用。 有了地理備援複寫,Azure 儲存體會以持久的方式在兩個位置維護您的資料。 在這兩個位置中,Azure 儲存體會持續維護狀況良好的多個資料複本。 您讀取、建立、更新或刪除資料的位置是「主要」儲存體帳戶的位置。 主要位置存在於您透過 Azure 管理 Azure 傳統入口網站建立帳戶時所選擇的區域,例如美國中北部。 資料複寫的目標位置是「次要」位置。 次要位置是根據主要的位置自動判斷而來,它是與主要位置位於相同地區的第二個資料中心。 當儲存體帳戶啟用「讀取權限的地理備援複寫」時,可從次要位置使用唯讀權限。 |
get_user_delegation_key |
為了簽署 SAS 權杖的目的,取得使用者委派金鑰。 權杖認證必須存在於服務物件上,此要求才能成功。 |
list_containers |
傳回產生器,以列出指定帳戶下的容器。 產生器會延遲遵循服務傳回的接續權杖,並在傳回所有容器時停止。 |
set_service_properties |
設定儲存體帳戶 Blob 服務的屬性,包括 Azure 儲存體分析。 如果專案 (例如,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
參數
- 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
參數
- lease
如果指定,delete_container只有在容器的租用作用中且符合此識別碼時才會成功。 如果容器有作用中的租用,則為必要專案。
- if_modified_since
- datetime
日期時間值。 Azure 預期傳入的日期值是 UTC。 如果包含時區,任何非 UTC 日期時間都會轉換成 UTC。 如果在沒有時區資訊的情況下傳入日期,則會假設為 UTC。 只有資源在指定的時間後修改,才能指定此標準執行作業。
- if_unmodified_since
- 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 會在儲存體帳戶內的所有容器中搜尋,但可以在運算式中限定為單一容器。
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 的可反覆運算 (自動分頁) 回應。
傳回類型
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 服務用戶端。
傳回類型
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
參數
要在其上運作的選擇性 Blob 快照集。 這可以是快照集的識別碼,或 所 create_snapshot 傳回的字典輸出。
- version_id
- str
版本識別碼參數是不透明的 DateTime 值,當存在時,會指定要運作的 Blob 版本。
傳回
BlobClient。
傳回類型
get_container_client
取得用戶端以與指定的容器互動。
容器不需要已經存在。
get_container_client(container: ContainerProperties | str) -> ContainerClient
參數
傳回
ContainerClient。
傳回類型
get_service_properties
取得儲存體帳戶 Blob 服務的屬性,包括 Azure 儲存體分析。
get_service_properties(**kwargs: Any) -> Dict[str, Any]
參數
- timeout
- int
以秒為單位設定作業的伺服器端逾時。 如需詳細資訊,請參閱 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations 。 此值不會在用戶端上追蹤或驗證。 若要設定用戶端網路逾時,請參閱 這裡。
傳回
物件,包含 Blob 服務屬性,例如分析記錄、小時/分鐘計量、cors 規則等。
傳回類型
get_service_stats
擷取與 Blob 服務的複寫相關的統計資料。
只有在儲存體帳戶啟用讀取權限異地備援複寫時,才能使用。
有了地理備援複寫,Azure 儲存體會以持久的方式在兩個位置維護您的資料。 在這兩個位置中,Azure 儲存體會持續維護狀況良好的多個資料複本。 您讀取、建立、更新或刪除資料的位置是「主要」儲存體帳戶的位置。 主要位置存在於您透過 Azure 管理 Azure 傳統入口網站建立帳戶時所選擇的區域,例如美國中北部。 資料複寫的目標位置是「次要」位置。 次要位置是根據主要的位置自動判斷而來,它是與主要位置位於相同地區的第二個資料中心。 當儲存體帳戶啟用「讀取權限的地理備援複寫」時,可從次要位置使用唯讀權限。
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
參數
- 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 的可反覆運算 (自動分頁) 。
傳回類型
set_service_properties
設定儲存體帳戶 Blob 服務的屬性,包括 Azure 儲存體分析。
如果專案 (例如,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
參數
- 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
參數
- timeout
- int
以秒為單位設定作業的伺服器端逾時。 如需詳細資訊,請參閱 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-blob-service-operations 。 此值不會在用戶端上追蹤或驗證。 若要設定用戶端網路逾時,請參閱 這裡。
傳回
未刪除的 ContainerClient。
傳回類型
屬性
api_version
用於要求的儲存體 API 版本。
location_mode
用戶端目前使用的位置模式。
根據預設,這會是「主要」。 選項包括 「主要」和「次要」。
primary_endpoint
完整的主要端點 URL。
primary_hostname
主要端點的主機名稱。
secondary_endpoint
如果已設定,則為完整的次要端點 URL。
如果無法使用,將會引發 ValueError。 若要明確指定次要主機名稱,請在具現化上使用選擇性 secondary_hostname 關鍵字引數。
例外狀況
secondary_hostname
次要端點的主機名稱。
如果無法使用,則為 None。 若要明確指定次要主機名稱,請在具現化上使用選擇性 secondary_hostname 關鍵字引數。
url
此實體的完整端點 URL,包括如果使用的 SAS 權杖。
這可能是主要端點或次要端點,視目前的 location_mode 而定。 :returns:此實體的完整端點 URL,包括如果使用的 SAS 權杖。 :rtype: str