ShareClient 類別
要與特定共用互動的用戶端,雖然該共用可能還不存在。
對於與此共用中特定目錄或檔案相關的作業,也可以使用 和 get_file_client 函式擷取這些實體的 get_directory_client 用戶端。
如需更多選擇性設定,請按一下 這裡。
- 繼承
-
azure.storage.fileshare._shared.base_client.StorageAccountHostsMixinShareClient
建構函式
ShareClient(account_url: str, share_name: str, snapshot: str | Dict[str, Any] | None = None, credential: str | Dict[str, str] | AzureNamedKeyCredential | AzureSasCredential | TokenCredential | None = None, *, token_intent: Literal['backup'] | None = None, **kwargs: Any)
參數
- credential
要用來驗證的認證。 如果帳戶 URL 已經有 SAS 權杖,則這是選擇性的。 此值可以是 SAS 權杖字串、來自 azure.core.credentials 的 AzureSasCredential 或 AzureNamedKeyCredential 的實例、帳戶共用存取金鑰,或來自 azure.identity 的 TokenCredentials 類別實例。 如果資源 URI 已經包含 SAS 權杖,則會忽略此權杖,以取得明確的認證
- 除了 AzureSasCredential 的情況之外,衝突的 SAS 權杖將會引發 ValueError。 如果使用 AzureNamedKeyCredential 的實例,「name」 應該是儲存體帳戶名稱,而 「key」 應該是儲存體帳戶金鑰。
- token_intent
- Literal['backup']
使用 TokenCredential 進行驗證時需要,並忽略其他類型的驗證。 指定使用 TokenCredential 驗證時所有要求的意圖。 可能的值包括:
backup - 指定要求適用于備份/系統管理員類型作業,這表示會略過所有檔案/目錄 ACL,並授與完整許可權。 使用者也必須具有必要的 RBAC 許可權。
- allow_trailing_dot
- bool
如果為 true,則不會從目標 URI 修剪尾端點。
- allow_source_trailing_dot
- bool
如果為 true,則不會從來源 URI 修剪尾端點。
- secondary_hostname
- str
次要端點的主機名稱。
- max_range_size
- int
用於檔案上傳的最大範圍大小。 預設值為 4*1024*1024
。
方法
acquire_lease |
要求新的租用。 如果共用沒有作用中的租用,共用服務會在共用上建立租用,並傳回新的租用。 12.5.0 版的新功能。 |
close |
這個方法是關閉用戶端所開啟的通訊端。 搭配內容管理員使用時,不需要使用它。 |
create_directory |
在共用中建立目錄,並傳回用戶端來與目錄互動。 |
create_permission_for_share |
在共用層級建立安全性描述元 (許可權) 。 這個「許可權」可用於共用中的檔案/目錄。 如果 'permission' 已經存在,它應該傳回它的金鑰,否則會在共用層級建立新的許可權,並傳回其金鑰。 |
create_share |
在帳戶下建立新的共用。 如果具有相同名稱的共用已經存在,作業就會失敗。 |
create_snapshot |
建立共用的快照集。 快照集是一個在某個時間點所建立之共用的唯讀版本。 它可以讀取、複製或刪除,但無法修改。 快照集提供備份共用的方式,因為它在一段時間出現時。 共用的快照集與擷取快照集的基底共用名稱稱相同,並附加 DateTime 值,以指出快照集的擷取時間。 |
delete_directory |
標記要刪除的目錄。 目錄稍後會在垃圾收集期間刪除。 |
delete_share |
標記要刪除的指定共用。 共用稍後會在垃圾收集期間刪除。 |
from_connection_string |
從連接字串建立 ShareClient。 |
from_share_url | |
get_directory_client |
取得用戶端以與指定的目錄互動。 目錄尚未存在。 |
get_file_client |
取得用戶端以與指定的檔案互動。 檔案不需要已經存在。 |
get_permission_for_share |
取得指定金鑰 (安全性描述元) 的許可權。 這個「許可權」可用於共用中的檔案/目錄。 |
get_share_access_policy |
取得共用的許可權。 許可權會指出是否可以公開存取共用中的檔案。 |
get_share_properties |
傳回指定共用的所有使用者定義中繼資料和系統屬性。 傳回的資料不包含共用的檔案或目錄清單。 |
get_share_stats |
取得以位元組為單位儲存在共用上的大約資料大小。 請注意,此值可能不會包含最近建立或最近重新調整大小的檔案。 |
list_directories_and_files |
列出共用下的目錄和檔案。 |
set_share_access_policy |
設定共用的許可權,或可用於共用存取簽章的預存存取原則。 許可權會指出是否可以公開存取共用中的檔案。 |
set_share_metadata |
設定共用的中繼資料。 每次呼叫這項作業都會取代附加至共用的所有現存中繼資料。 若要從共用中移除所有中繼資料,請呼叫沒有中繼資料聽寫的這項作業。 |
set_share_properties |
設定共用屬性。 12.4.0 版的新功能。 |
set_share_quota |
設定共用的配額。 |
acquire_lease
要求新的租用。
如果共用沒有作用中的租用,共用服務會在共用上建立租用,並傳回新的租用。
12.5.0 版的新功能。
acquire_lease(**kwargs: Any) -> ShareLeaseClient
參數
- lease_duration
- int
指定租用的持續時間 (秒數),或指定負一 (-1),代表租用永不到期。 非無限期的租用可以介於 15 到 60 秒之間。 租用持續時間無法使用更新或變更來變更。 預設值為 -1 (無限租用) 。
- lease_id
- str
建議的租用識別碼,使用 GUID 字串格式。 如果建議的租用識別碼格式不正確,共用服務會傳回 400 (不正確要求) 。
- timeout
- int
以秒為單位設定作業的伺服器端逾時。 如需詳細資訊,請參閱 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-file-service-operations 。 用戶端上不會追蹤或驗證此值。 若要設定用戶端網路逾時,請參閱 這裡。
傳回
ShareLeaseClient 物件。
傳回類型
範例
取得共用上的租用。
share.create_directory("mydir")
lease = share.acquire_lease()
share.get_share_properties(lease=lease)
share.delete_share(lease=lease)
close
這個方法是關閉用戶端所開啟的通訊端。 搭配內容管理員使用時,不需要使用它。
close()
create_directory
在共用中建立目錄,並傳回用戶端來與目錄互動。
create_directory(directory_name: str, **kwargs: Any) -> ShareDirectoryClient
參數
- metadata
與目錄相關聯的名稱/值組作為中繼資料。
- timeout
- int
以秒為單位設定作業的伺服器端逾時。 如需詳細資訊,請參閱 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-file-service-operations 。 用戶端上不會追蹤或驗證此值。 若要設定用戶端網路逾時,請參閱 這裡。
傳回
ShareDirectoryClient
傳回類型
create_permission_for_share
在共用層級建立安全性描述元 (許可權) 。
這個「許可權」可用於共用中的檔案/目錄。 如果 'permission' 已經存在,它應該傳回它的金鑰,否則會在共用層級建立新的許可權,並傳回其金鑰。
create_permission_for_share(file_permission: str, **kwargs: Any) -> str
參數
- timeout
- int
以秒為單位設定作業的伺服器端逾時。 如需詳細資訊,請參閱 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-file-service-operations 。 用戶端上不會追蹤或驗證此值。 若要設定用戶端網路逾時,請參閱 這裡。
傳回
檔案許可權金鑰
傳回類型
create_share
在帳戶下建立新的共用。 如果具有相同名稱的共用已經存在,作業就會失敗。
create_share(**kwargs: Any) -> Dict[str, Any]
參數
- quota
- int
要分配的配額。
- access_tier
指定共用的存取層。 可能的值:'TransactionOptimized'、'Hot'、'Cool'
- timeout
- int
以秒為單位設定作業的伺服器端逾時。 如需詳細資訊,請參閱 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-file-service-operations 。 用戶端上不會追蹤或驗證此值。 若要設定用戶端網路逾時,請參閱 這裡。
- protocols
- str 或 ShareProtocols
在共用上啟用的通訊協定。 共用上只能啟用一個通訊協定。
- root_squash
- str 或 ShareRootSquash
要設定在共用上的根區。 僅適用于 NFS 共用。 可能的值為:'NoRootSquash'、'RootSquash'、'AllSquash'。
傳回
共用更新的屬性聽寫 (Etag 和上次修改) 。
傳回類型
範例
建立檔案共用。
# Create share with Access Tier set to Hot
share.create_share(access_tier=ShareAccessTier("Hot"))
create_snapshot
建立共用的快照集。
快照集是一個在某個時間點所建立之共用的唯讀版本。 它可以讀取、複製或刪除,但無法修改。 快照集提供備份共用的方式,因為它在一段時間出現時。
共用的快照集與擷取快照集的基底共用名稱稱相同,並附加 DateTime 值,以指出快照集的擷取時間。
create_snapshot(**kwargs: Any | None) -> Dict[str, Any]
參數
- timeout
- int
以秒為單位設定作業的伺服器端逾時。 如需詳細資訊,請參閱 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-file-service-operations 。 用戶端上不會追蹤或驗證此值。 若要設定用戶端網路逾時,請參閱 這裡。
傳回
共用更新的屬性聽寫 (快照集識別碼、Etag 和上次修改) 。
傳回類型
範例
建立檔案共用的快照集。
share.create_snapshot()
delete_directory
標記要刪除的目錄。 目錄稍後會在垃圾收集期間刪除。
delete_directory(directory_name: str, **kwargs: Any) -> None
參數
- timeout
- int
以秒為單位設定作業的伺服器端逾時。 如需詳細資訊,請參閱 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-file-service-operations 。 用戶端上不會追蹤或驗證此值。 若要設定用戶端網路逾時,請參閱 這裡。
傳回類型
delete_share
標記要刪除的指定共用。 共用稍後會在垃圾收集期間刪除。
delete_share(delete_snapshots: bool | None = False, **kwargs) -> None
參數
- lease
如果共用具有作用中的租用,則為必要專案。 值可以是 ShareLeaseClient 物件或租用識別碼作為字串。
12.5.0 版的新功能。
此關鍵字引數是在 API 版本 '2020-08-04' 中引進。
- timeout
- int
以秒為單位設定作業的伺服器端逾時。 如需詳細資訊,請參閱 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-file-service-operations 。 用戶端上不會追蹤或驗證此值。 若要設定用戶端網路逾時,請參閱 這裡。
範例
刪除共用和任何快照集。
share.delete_share(delete_snapshots=True)
from_connection_string
從連接字串建立 ShareClient。
from_connection_string(conn_str: str, share_name: str, snapshot: str | Dict[str, Any] | None = None, 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 類別實例。 如果資源 URI 已經包含 SAS 權杖,則會忽略此權杖,以取得明確的認證
- 除了 AzureSasCredential 的情況之外,衝突的 SAS 權杖將會引發 ValueError。 如果使用 AzureNamedKeyCredential 的實例,「name」 應該是儲存體帳戶名稱,而 「key」 應該是儲存體帳戶金鑰。
傳回
共用用戶端。
傳回類型
範例
從連接字串取得共用用戶端。
from azure.storage.fileshare import ShareClient
share = ShareClient.from_connection_string(self.connection_string, "sharesamples2")
from_share_url
from_share_url(share_url: str, snapshot: str | Dict[str, Any] | None = None, 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 類別實例。 如果資源 URI 已經包含 SAS 權杖,則會忽略此權杖,以取得明確的認證
- 除了 AzureSasCredential 的情況之外,衝突的 SAS 權杖將會引發 ValueError。 如果使用 AzureNamedKeyCredential 的實例,「name」 應該是儲存體帳戶名稱,而 「key」 應該是儲存體帳戶金鑰。
傳回
共用用戶端。
傳回類型
get_directory_client
取得用戶端以與指定的目錄互動。 目錄尚未存在。
get_directory_client(directory_path: str | None = None) -> ShareDirectoryClient
參數
傳回
目錄用戶端。
傳回類型
get_file_client
取得用戶端以與指定的檔案互動。 檔案不需要已經存在。
get_file_client(file_path: str) -> ShareFileClient
參數
傳回
檔案用戶端。
傳回類型
get_permission_for_share
取得指定金鑰 (安全性描述元) 的許可權。
這個「許可權」可用於共用中的檔案/目錄。
get_permission_for_share(permission_key: str, **kwargs: Any) -> str
參數
- timeout
- int
以秒為單位設定作業的伺服器端逾時。 如需詳細資訊,請參閱 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-file-service-operations 。 用戶端上不會追蹤或驗證此值。 若要設定用戶端網路逾時,請參閱 這裡。
傳回
可攜式 SDDL) (檔案許可權
傳回類型
get_share_access_policy
取得共用的許可權。 許可權會指出是否可以公開存取共用中的檔案。
get_share_access_policy(**kwargs: Any) -> Dict[str, Any]
參數
- timeout
- int
以秒為單位設定作業的伺服器端逾時。 如需詳細資訊,請參閱 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-file-service-operations 。 用戶端上不會追蹤或驗證此值。 若要設定用戶端網路逾時,請參閱 這裡。
- lease
如果共用具有作用中的租用,則為必要專案。 值可以是 ShareLeaseClient 物件或租用識別碼作為字串。
12.5.0 版的新功能。
此關鍵字引數是在 API 版本 '2020-08-04' 中引進。
傳回
存取聽寫中的原則資訊。
傳回類型
get_share_properties
傳回指定共用的所有使用者定義中繼資料和系統屬性。 傳回的資料不包含共用的檔案或目錄清單。
get_share_properties(**kwargs: Any) -> ShareProperties
參數
- timeout
- int
以秒為單位設定作業的伺服器端逾時。 如需詳細資訊,請參閱 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-file-service-operations 。 用戶端上不會追蹤或驗證此值。 若要設定用戶端網路逾時,請參閱 這裡。
- lease
如果共用具有作用中的租用,則為必要專案。 值可以是 ShareLeaseClient 物件或租用識別碼作為字串。
12.5.0 版的新功能。
此關鍵字引數是在 API 版本 '2020-08-04' 中引進。
傳回
共用屬性。
傳回類型
範例
取得共用屬性。
properties = share.get_share_properties()
get_share_stats
取得以位元組為單位儲存在共用上的大約資料大小。
請注意,此值可能不會包含最近建立或最近重新調整大小的檔案。
get_share_stats(**kwargs: Any) -> int
參數
- timeout
- int
以秒為單位設定作業的伺服器端逾時。 如需詳細資訊,請參閱 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-file-service-operations 。 用戶端上不會追蹤或驗證此值。 若要設定用戶端網路逾時,請參閱 這裡。
- lease
如果共用具有作用中的租用,則為必要專案。 值可以是 ShareLeaseClient 物件或租用識別碼作為字串。
12.5.0 版的新功能。
此關鍵字引數是在 API 版本 '2020-08-04' 中引進。
傳回
儲存在共用上) 位元組的資料大約大小 (。
傳回類型
list_directories_and_files
列出共用下的目錄和檔案。
list_directories_and_files(directory_name: str | None = None, name_starts_with: str | None = None, marker: str | None = None, **kwargs: Any) -> Iterable[Dict[str, str]]
參數
包含此參數以指定要包含在回應中的一或多個資料集。 可能的 str 值為 「timestamps」、「Etag」、「Attributes」、「PermissionKey」。
12.6.0 版的新功能。
此關鍵字引數是在 API 版本 '2020-10-02' 中引進。
- include_extended_info
- bool
如果此值設定為 true,則會在列出的結果中傳回檔案識別碼。
12.6.0 版的新功能。
此關鍵字引數是在 API 版本 '2020-10-02' 中引進。
- timeout
- int
以秒為單位設定作業的伺服器端逾時。 如需詳細資訊,請參閱 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-file-service-operations 。 用戶端上不會追蹤或驗證此值。 若要設定用戶端網路逾時,請參閱 這裡。
傳回
可逐一流覽類似 DictProperties 和 FileProperties 的自動分頁
傳回類型
範例
列出共用中的目錄和檔案。
# Create a directory in the share
dir_client = share.create_directory("mydir")
# Upload a file to the directory
with open(SOURCE_FILE, "rb") as source_file:
dir_client.upload_file(file_name="sample", data=source_file)
# List files in the directory
my_files = list(share.list_directories_and_files(directory_name="mydir"))
print(my_files)
set_share_access_policy
設定共用的許可權,或可用於共用存取簽章的預存存取原則。 許可權會指出是否可以公開存取共用中的檔案。
set_share_access_policy(signed_identifiers: Dict[str, AccessPolicy], **kwargs: Any) -> Dict[str, str]
參數
- timeout
- int
以秒為單位設定作業的伺服器端逾時。 如需詳細資訊,請參閱 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-file-service-operations 。 用戶端上不會追蹤或驗證此值。 若要設定用戶端網路逾時,請參閱 這裡。
- lease
如果共用具有作用中的租用,則為必要專案。 值可以是 ShareLeaseClient 物件或租用識別碼作為字串。
12.5.0 版的新功能。
此關鍵字引數是在 API 版本 '2020-08-04' 中引進。
傳回
共用更新的屬性聽寫 (Etag 和上次修改) 。
傳回類型
set_share_metadata
設定共用的中繼資料。
每次呼叫這項作業都會取代附加至共用的所有現存中繼資料。 若要從共用中移除所有中繼資料,請呼叫沒有中繼資料聽寫的這項作業。
set_share_metadata(metadata: Dict[str, Any], **kwargs: Any) -> Dict[str, Any]
參數
- timeout
- int
以秒為單位設定作業的伺服器端逾時。 如需詳細資訊,請參閱 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-file-service-operations 。 用戶端上不會追蹤或驗證此值。 若要設定用戶端網路逾時,請參閱 這裡。
- lease
如果共用具有作用中的租用,則為必要專案。 值可以是 ShareLeaseClient 物件或租用識別碼作為字串。
12.5.0 版的新功能。
此關鍵字引數是在 API 版本 '2020-08-04' 中引進。
傳回
共用更新的屬性聽寫 (Etag 和上次修改) 。
傳回類型
範例
設定共用中繼資料。
data = {'category': 'test'}
share.set_share_metadata(metadata=data)
set_share_properties
設定共用屬性。
12.4.0 版的新功能。
set_share_properties(**kwargs: Any) -> Dict[str, Any]
參數
- access_tier
- str 或 <xref:azure.storage.fileshare.models.ShareAccessTier>
指定共用的存取層。 可能的值:'TransactionOptimized'、'Hot'和 'Cool'
- quota
- int
指定共用的大小上限 (以 GB 為單位)。 必須大於 0,且小於或等於 5TB。
- timeout
- int
以秒為單位設定作業的伺服器端逾時。 如需詳細資訊,請參閱 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-file-service-operations 。 用戶端上不會追蹤或驗證此值。 若要設定用戶端網路逾時,請參閱 這裡。
- root_squash
- str 或 ShareRootSquash
要設定在共用上的根區。 僅適用于 NFS 共用。 可能的值為:'NoRootSquash'、'RootSquash'、'AllSquash'。
- lease
如果共用具有作用中的租用,則為必要專案。 值可以是 ShareLeaseClient 物件或租用識別碼作為字串。
傳回
共用更新的屬性聽寫 (Etag 和上次修改) 。
傳回類型
範例
設定共用屬性。
# Set the tier for the first share to Hot
share1.set_share_properties(access_tier="Hot")
# Set the quota for the first share to 3
share1.set_share_properties(quota=3)
# Set the tier for the second share to Cool and quota to 2
share2.set_share_properties(access_tier=ShareAccessTier("Cool"), quota=2)
# Get the shares' properties
print(share1.get_share_properties().access_tier)
print(share1.get_share_properties().quota)
print(share2.get_share_properties().access_tier)
print(share2.get_share_properties().quota)
set_share_quota
設定共用的配額。
set_share_quota(quota: int, **kwargs: Any) -> Dict[str, Any]
參數
- timeout
- int
以秒為單位設定作業的伺服器端逾時。 如需詳細資訊,請參閱 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-file-service-operations 。 用戶端上不會追蹤或驗證此值。 若要設定用戶端網路逾時,請參閱 這裡。
- lease
如果共用具有作用中的租用,則為必要專案。 值可以是 ShareLeaseClient 物件或租用識別碼作為字串。
12.5.0 版的新功能。
此關鍵字引數是在 API 版本 '2020-08-04' 中引進。
傳回
共用更新的屬性聽寫 (Etag 和上次修改) 。
傳回類型
範例
設定共用配額。
# Set the quota for the share to 1GB
share.set_share_quota(quota=1)
屬性
api_version
用於要求的儲存體 API 版本。
location_mode
用戶端目前使用的位置模式。
根據預設,這會是「主要」。 選項包括 「primary」 和 「secondary」。
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