Share via


ShareDirectoryClient 類別

要與特定目錄互動的用戶端,雖然可能還不存在。

對於與此共用中特定子目錄或檔案相關的作業,也可以使用 和 get_file_client 函式擷取這些實體的 get_subdirectory_client 用戶端。

如需更多選擇性設定,請按一下 這裡

繼承
azure.storage.fileshare._shared.base_client.StorageAccountHostsMixin
ShareDirectoryClient

建構函式

ShareDirectoryClient(account_url: str, share_name: str, directory_path: 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)

參數

account_url
str
必要

儲存體帳戶的 URI。 若要為目錄提供完整 URI 來建立用戶端,請使用 from_directory_url classmethod。

share_name
str
必要

目錄的共用名稱稱。

directory_path
str
必要

要與其互動之目錄的目錄路徑。 如果指定,此值將會覆寫目錄 URL 中指定的目錄值。

snapshot
str
預設值: None

要在其中操作的選擇性共用快照集。 這可以是快照集識別碼字串或從 create_snapshot 傳回的回應。

credential
預設值: None

要用來驗證的認證。 如果帳戶 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 修剪尾端點。

api_version
str

要用於要求的儲存體 API 版本。 預設值是與目前 SDK 相容的最新服務版本。 將 設定為較舊版本可能會導致功能相容性降低。

12.1.0 版的新功能。

secondary_hostname
str

次要端點的主機名稱。

max_range_size
int

用於檔案上傳的範圍大小上限。 預設為 4*1024*1024

audience
str

要求 Azure Active Directory 驗證權杖時要使用的物件。 只有在認證類型為 TokenCredential 時才會生效。 此值可以是 https://storage.azure.com/ 預設) 或 HTTPs://.file.core.windows.net (。

方法

close

這個方法是關閉用戶端所開啟的通訊端。 與內容管理員搭配使用時,不需要使用它。

close_all_handles

關閉任何開啟的檔案控制碼。

這項作業將會封鎖,直到服務關閉所有開啟的控制碼為止。

close_handle

關閉開啟的檔案控制碼。

create_directory

在用戶端所參考的目錄下建立新的目錄。

create_subdirectory

建立新的子目錄,並傳回用戶端來與子目錄互動。

delete_directory

標記要刪除的目錄。 目錄稍後會在垃圾收集期間刪除。

delete_file

標記要刪除的指定檔案。 檔案稍後會在垃圾收集期間刪除。

delete_subdirectory

刪除子目錄。

exists

如果目錄存在,則傳回 True,否則會傳回 False。

from_connection_string

從連接字串建立 ShareDirectoryClient。

from_directory_url

從目錄 URL 建立 ShareDirectoryClient。

get_directory_properties

傳回指定目錄的所有使用者定義中繼資料和系統屬性。 傳回的資料不包含目錄的檔案清單。

get_file_client

取得用戶端以與特定檔案互動。

檔案不需要已經存在。

get_subdirectory_client

取得用戶端以與特定子目錄互動。

子目錄不需要已經存在。

list_directories_and_files

列出目錄下的所有目錄和檔案。

list_handles

列出目錄或目錄下檔案上開啟的控制碼。

rename_directory

重新命名來原始目錄。

:p aramtype file_attributes:~azure.storage.fileshare.NTFSAttributes 或 str :keyword file_creation_time:

目錄的建立時間。

:p aramtype file_creation_time:~datetime.datetime 或 str :keyword file_last_write_time:

檔案的上次寫入時間。

:p aramtype file_last_write_time:~datetime.datetime 或 str :keyword file_change_time:

變更目錄的時間。 如果未指定,變更時間將會設定為目前的日期/時間。

12.8.0 版的新功能:此參數是在 API 版本 '2021-06-08' 中引進。

set_directory_metadata

設定目錄的中繼資料。

每次呼叫這項作業都會取代附加至目錄的所有現存中繼資料。 若要從目錄中移除所有中繼資料,請使用空的中繼資料聽寫呼叫此作業。

set_http_headers

設定目錄上的 HTTP 標頭。

upload_file

在目錄中建立新的檔案,並傳回 ShareFileClient 以與檔案互動。

close

這個方法是關閉用戶端所開啟的通訊端。 與內容管理員搭配使用時,不需要使用它。

close()

close_all_handles

關閉任何開啟的檔案控制碼。

這項作業將會封鎖,直到服務關閉所有開啟的控制碼為止。

close_all_handles(recursive: bool = False, **kwargs: Any) -> Dict[str, int]

參數

recursive
bool
必要

布林值,指定作業是否應該套用至用戶端指定的目錄、其檔案、其子目錄及其檔案。 預設值為 False。

timeout
int

以秒為單位設定作業的伺服器端逾時。 如需詳細資訊,請參閱 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-file-service-operations 。 此值不會在用戶端上追蹤或驗證。 若要設定用戶端網路逾時,請參閱 這裡

傳回

如果找不到指定的控制碼,) 且控制碼數目無法在聽寫中關閉,則關閉 (的控制碼數目可能會是 0。

傳回類型

close_handle

關閉開啟的檔案控制碼。

close_handle(handle: str | Handle, **kwargs: Any) -> Dict[str, int]

參數

handle
strHandle
必要

要關閉的特定控制碼。

timeout
int

以秒為單位設定作業的伺服器端逾時。 如需詳細資訊,請參閱 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-file-service-operations 。 此值不會在用戶端上追蹤或驗證。 若要設定用戶端網路逾時,請參閱 這裡

傳回

如果找不到指定的控制碼,) 且控制碼數目無法在聽寫中關閉,則關閉 (的控制碼數目可能會是 0。

傳回類型

create_directory

在用戶端所參考的目錄下建立新的目錄。

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

參數

file_attributes
NTFSAttributes

檔案和目錄的檔案系統屬性。 如果未設定,預設值會是 「none」,而且屬性會設定為 「Archive」。 以下是 var 類型為 str 時的範例:'Temporary|封存'。 file_attributes值不區分大小寫。

file_creation_time
strdatetime

目錄的建立時間。 預設值:「now」。

file_last_write_time
strdatetime

目錄的上次寫入時間。 預設值:「now」。

file_permission
str

如果指定許可權 () 應為目錄/檔案設定安全性描述項。 如果許可權大小為 < = 8KB,則可以使用此標頭,否則應該使用 file-permission-key 標頭。 預設值:繼承。 如果將 SDDL 指定為輸入,它必須具有擁有者、群組和 dacl。 注意:應該只指定其中一個檔案許可權或 file-permission-key。

file_permission_key
str

要為目錄/檔案設定之許可權的索引鍵。 注意:應該只指定其中一個檔案許可權或 file-permission-key。

file_change_time
strdatetime

變更目錄的時間。 如果未指定,變更時間將會設定為目前的日期/時間。

12.8.0 版的新功能:這個參數是在 API 版本 '2021-06-08' 中引進。

metadata
dict(str,str)

與目錄相關聯的名稱/值組作為中繼資料。

timeout
int

以秒為單位設定作業的伺服器端逾時。 如需詳細資訊,請參閱 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-file-service-operations 。 此值不會在用戶端上追蹤或驗證。 若要設定用戶端網路逾時,請參閱 這裡

傳回

目錄更新的屬性聽寫 (Etag 和上次修改) 。

傳回類型

範例

建立目錄。


   my_directory.create_directory()

create_subdirectory

建立新的子目錄,並傳回用戶端來與子目錄互動。

create_subdirectory(directory_name: str, **kwargs) -> ShareDirectoryClient

參數

directory_name
str
必要

子目錄的名稱。

metadata
dict(str,str)

與子目錄相關聯的名稱/值組做為中繼資料。

timeout
int

以秒為單位設定作業的伺服器端逾時。 如需詳細資訊,請參閱 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-file-service-operations 。 此值不會在用戶端上追蹤或驗證。 若要設定用戶端網路逾時,請參閱 這裡

傳回

ShareDirectoryClient

傳回類型

範例

建立子目錄。


   # Create the directory
   parent_dir.create_directory()

   # Create a subdirectory
   subdir = parent_dir.create_subdirectory("subdir")

delete_directory

標記要刪除的目錄。 目錄稍後會在垃圾收集期間刪除。

delete_directory(**kwargs: Any) -> None

參數

timeout
int

以秒為單位設定作業的伺服器端逾時。 如需詳細資訊,請參閱 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-file-service-operations 。 此值不會在用戶端上追蹤或驗證。 若要設定用戶端網路逾時,請參閱 這裡

傳回類型

範例

刪除目錄。


   my_directory.delete_directory()

delete_file

標記要刪除的指定檔案。 檔案稍後會在垃圾收集期間刪除。

delete_file(file_name: str, **kwargs: Any | None) -> None

參數

file_name
str
必要

要刪除的檔案名。

timeout
int

以秒為單位設定作業的伺服器端逾時。 如需詳細資訊,請參閱 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-file-service-operations 。 此值不會在用戶端上追蹤或驗證。 若要設定用戶端網路逾時,請參閱 這裡

傳回類型

範例

刪除目錄中的檔案。


   # Delete the file in the directory
   my_directory.delete_file(file_name="sample")

delete_subdirectory

刪除子目錄。

delete_subdirectory(directory_name: str, **kwargs) -> None

參數

directory_name
str
必要

子目錄的名稱。

timeout
int

以秒為單位設定作業的伺服器端逾時。 如需詳細資訊,請參閱 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-file-service-operations 。 此值不會在用戶端上追蹤或驗證。 若要設定用戶端網路逾時,請參閱 這裡

傳回類型

範例

刪除子目錄。


   parent_dir.delete_subdirectory("subdir")

exists

如果目錄存在,則傳回 True,否則會傳回 False。

exists(**kwargs: Any) -> bool

參數

timeout
int

以秒為單位設定作業的伺服器端逾時。 如需詳細資訊,請參閱 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-file-service-operations 。 此值不會在用戶端上追蹤或驗證。 若要設定用戶端網路逾時,請參閱 這裡

傳回

如果目錄存在,則為 True,否則為 False。

傳回類型

from_connection_string

從連接字串建立 ShareDirectoryClient。

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

參數

conn_str
str
必要

Azure 儲存體帳戶連接字串。

share_name
str
必要

共用的名稱。

directory_path
str
必要

目錄路徑。

credential
預設值: None

要用來驗證的認證。 如果帳戶 URL 已經有 SAS 權杖,則這是選擇性的。 此值可以是 SAS 權杖字串、來自 azure.core.credentials 的 AzureSasCredential 或 AzureNamedKeyCredential 實例、帳戶共用存取金鑰,或來自 azure.identity 的 TokenCredentials 類別實例。 如果資源 URI 已經包含 SAS 權杖,則會忽略此權杖,以使用明確的認證

  • 除了 AzureSasCredential 的情況之外,衝突的 SAS 權杖將會引發 ValueError。 如果使用 AzureNamedKeyCredential 的實例,「name」 應該是儲存體帳戶名稱,而 「key」 應該是儲存體帳戶金鑰。
audience
str

要求 Azure Active Directory 驗證權杖時要使用的物件。 只有在認證類型為 TokenCredential 時才會生效。 此值可以是 https://storage.azure.com/ 預設) 或 HTTPs://.file.core.windows.net (。

傳回

目錄用戶端。

傳回類型

from_directory_url

從目錄 URL 建立 ShareDirectoryClient。

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

參數

directory_url
str
必要

目錄的完整 URI。

snapshot
str
預設值: None

要在其中操作的選擇性共用快照集。 這可以是快照集識別碼字串或從 create_snapshot 傳回的回應。

credential
預設值: None

要用來驗證的認證。 如果帳戶 URL 已經有 SAS 權杖,則這是選擇性的。 此值可以是 SAS 權杖字串、來自 azure.core.credentials 的 AzureSasCredential 或 AzureNamedKeyCredential 實例、帳戶共用存取金鑰,或來自 azure.identity 的 TokenCredentials 類別實例。 如果資源 URI 已經包含 SAS 權杖,則會忽略此權杖,以使用明確的認證

  • 除了 AzureSasCredential 的情況之外,衝突的 SAS 權杖將會引發 ValueError。 如果使用 AzureNamedKeyCredential 的實例,「name」 應該是儲存體帳戶名稱,而 「key」 應該是儲存體帳戶金鑰。
audience
str

要求 Azure Active Directory 驗證權杖時要使用的物件。 只有在認證類型為 TokenCredential 時才會生效。 此值可以是 https://storage.azure.com/ 預設) 或 HTTPs://.file.core.windows.net (。

傳回

目錄用戶端。

傳回類型

get_directory_properties

傳回指定目錄的所有使用者定義中繼資料和系統屬性。 傳回的資料不包含目錄的檔案清單。

get_directory_properties(**kwargs: Any) -> DirectoryProperties

參數

timeout
int

以秒為單位設定作業的伺服器端逾時。 如需詳細資訊,請參閱 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-file-service-operations 。 此值不會在用戶端上追蹤或驗證。 若要設定用戶端網路逾時,請參閱 這裡

傳回

DirectoryProperties

傳回類型

get_file_client

取得用戶端以與特定檔案互動。

檔案不需要已經存在。

get_file_client(file_name: str, **kwargs: Any) -> ShareFileClient

參數

file_name
str
必要

檔案的名稱。

傳回

檔案用戶端。

傳回類型

get_subdirectory_client

取得用戶端以與特定子目錄互動。

子目錄不需要已經存在。

get_subdirectory_client(directory_name: str, **kwargs: Any) -> ShareDirectoryClient

參數

directory_name
str
必要

子目錄的名稱。

傳回

目錄用戶端。

傳回類型

範例

取得子目錄用戶端。


   # Get a directory client and create the directory
   parent = share.get_directory_client("dir1")
   parent.create_directory()

   # Get a subdirectory client and create the subdirectory "dir1/dir2"
   subdirectory = parent.get_subdirectory_client("dir2")
   subdirectory.create_directory()

list_directories_and_files

列出目錄下的所有目錄和檔案。

list_directories_and_files(name_starts_with: str | None = None, **kwargs: Any) -> ItemPaged

參數

name_starts_with
str
必要

篩選結果,只傳回名稱開頭為指定前置詞的實體。

include
list[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 。 此值不會在用戶端上追蹤或驗證。 若要設定用戶端網路逾時,請參閱 這裡

傳回

自動分頁可反覆運算類似 Dict 的 DirectoryProperties 和 FileProperties

傳回類型

範例

列出目錄和檔案。


   # List the directories and files under the parent directory
   my_list = list(parent_dir.list_directories_and_files())
   print(my_list)

list_handles

列出目錄或目錄下檔案上開啟的控制碼。

list_handles(recursive: bool = False, **kwargs: Any) -> ItemPaged[Handle]

參數

recursive
bool
必要

布林值,指定作業是否應該套用至用戶端指定的目錄、其檔案、其子目錄及其檔案。 預設值為 False。

timeout
int

以秒為單位設定作業的伺服器端逾時。 如需詳細資訊,請參閱 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-file-service-operations 。 此值不會在用戶端上追蹤或驗證。 若要設定用戶端網路逾時,請參閱 這裡

傳回

可反覆運算控制碼的自動分頁

傳回類型

rename_directory

重新命名來原始目錄。

:p aramtype file_attributes:~azure.storage.fileshare.NTFSAttributes 或 str :keyword file_creation_time:

目錄的建立時間。

:p aramtype file_creation_time:~datetime.datetime 或 str :keyword file_last_write_time:

檔案的上次寫入時間。

:p aramtype file_last_write_time:~datetime.datetime 或 str :keyword file_change_time:

變更目錄的時間。 如果未指定,變更時間將會設定為目前的日期/時間。

12.8.0 版的新功能:此參數是在 API 版本 '2021-06-08' 中引進。

rename_directory(new_name: str, **kwargs: Any) -> ShareDirectoryClient

參數

metadata
Dict[str,str]

要與檔案儲存物件建立關聯的名稱/值組。

destination_lease
ShareLeaseClientstr

如果目的地檔案具有作用中的租用,則為必要專案。 值可以是 ShareLeaseClient 物件或租用識別碼作為字串。

傳回

新的目錄用戶端。

傳回類型

set_directory_metadata

設定目錄的中繼資料。

每次呼叫這項作業都會取代附加至目錄的所有現存中繼資料。 若要從目錄中移除所有中繼資料,請使用空的中繼資料聽寫呼叫此作業。

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

參數

metadata
dict(str, str)
必要

與目錄相關聯的名稱/值組作為中繼資料。

timeout
int

以秒為單位設定作業的伺服器端逾時。 如需詳細資訊,請參閱 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-file-service-operations 。 用戶端上不會追蹤或驗證此值。 若要設定用戶端網路逾時,請參閱 這裡

傳回

目錄更新的屬性聽寫 (Etag 和上次修改) 。

傳回類型

set_http_headers

設定目錄上的 HTTP 標頭。

set_http_headers(file_attributes: str | NTFSAttributes = 'none', file_creation_time: str | datetime | None = 'preserve', file_last_write_time: str | datetime | None = 'preserve', file_permission: str | None = None, permission_key: str | None = None, **kwargs: Any) -> Dict[str, Any]

參數

file_attributes
NTFSAttributes
必要

檔案和目錄的檔案系統屬性。 如果未設定,表示保留現有的值。 以下是 var 類型為 str 時的範例:'暫存|封存'

file_creation_time
strdatetime
必要

檔案預設值的建立時間:保留。

file_last_write_time
strdatetime
必要

檔案的上次寫入時間預設值:保留。

file_permission
str
必要

如果指定許可權 (安全性描述元) 應設定目錄/檔案。 如果許可權大小為 < = 8KB,則可以使用此標頭,否則應該使用 x-ms-file-permission-key 標頭。 預設值:繼承。 如果 SDDL 指定為輸入,它必須具有擁有者、群組和 dacl。 注意:應該只指定其中一個 x-ms-file-permission 或 x-ms-file-permission-key。

permission_key
str
必要

要為目錄/檔案設定之許可權的索引鍵。 注意:應該只指定其中一個 x-ms-file-permission 或 x-ms-file-permission-key。

file_change_time
strdatetime

變更目錄的時間。 如果未指定,變更時間將會設定為目前的日期/時間。

12.8.0 版的新功能:此參數是在 API 版本 '2021-06-08' 中引進。

timeout
int

以秒為單位設定作業的伺服器端逾時。 如需詳細資訊,請參閱 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-file-service-operations 。 用戶端上不會追蹤或驗證此值。 若要設定用戶端網路逾時,請參閱 這裡

傳回

檔案更新的屬性聽寫 (Etag 和上次修改) 。

傳回類型

upload_file

在目錄中建立新的檔案,並傳回 ShareFileClient 以與檔案互動。

upload_file(file_name: str, data: bytes | str | Iterable | IO, length: int | None = None, **kwargs) -> ShareFileClient

參數

file_name
str
必要

檔案的名稱。

data
必要

檔案的內容。

length
int
必要

檔案的長度 (以位元組為單位)。 指定其大小上限,最多 1 TiB。

metadata
dict(str,str)

與檔案相關聯的名稱/值組,可做為中繼資料。

content_settings
ContentSettings

用來設定檔案屬性的 ContentSettings 物件。 用來設定內容類型、編碼、語言、處置、md5 和快取控制項。

validate_content
bool

如果為 true,則計算檔案每個範圍的 MD5 雜湊。 儲存體服務會檢查已使用已傳送之雜湊抵達的內容雜湊。 如果使用 HTTP 而非 HTTPs 作為 HTTPs, (預設) 已驗證,這主要對於偵測線路上的 bitflip 相當重要。 請注意,這個 MD5 雜湊不會與檔案一起儲存。

max_concurrency
int

要使用的平行連線數目上限。

progress_hook
Callable[[int, Optional[int]], None]

回呼,用來追蹤長時間執行上傳的進度。 簽章是目前 (函式:int、total:Optional[int]) ,其中 current 是目前傳輸的位元組數目,而 total 是 Blob 的大小;如果大小未知,則為 None。

timeout
int

以秒為單位設定作業的伺服器端逾時。 如需詳細資訊,請參閱 https://learn.microsoft.com/rest/api/storageservices/setting-timeouts-for-file-service-operations 。 用戶端上不會追蹤或驗證此值。 若要設定用戶端網路逾時,請參閱 這裡

encoding
str

預設為 UTF-8。

傳回

ShareFileClient

傳回類型

範例

將檔案上傳至目錄。


   # Upload a file to the directory
   with open(SOURCE_FILE, "rb") as source:
       my_directory.upload_file(file_name="sample", data=source)

屬性

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