共用方式為


租用檔案

Lease File 作業會建立和管理檔案的鎖定,以進行寫入和刪除作業。 2019-02-02 版和更新版本支援 Lease File

您可以使用下列其中一種模式呼叫 Lease File 作業:

  • Acquire,要求新的租用。
  • Change,以變更現有租用的標識符。
  • Release,如果不再需要租用,即可釋放租用,讓另一個用戶端可以立即取得對檔案的租用。
  • Break,若要強制結束租用,但請確定另一個用戶端在目前的租用期間到期之前,無法取得新的租用。

通訊協定可用性

已啟用檔案共享通訊協定 可用
SMB 是
NFS 無

請求

Lease File 要求建構方式如下。 建議您使用 HTTPS。

方法 要求 URI HTTP 版本
https://myaccount.file.core.windows.net/myshare/mydirectory/myfile?comp=lease HTTP/1.1

以您自己的方式取代要求 URI 中顯示的路徑元件,如下所示:

路徑元件 描述
myaccount 記憶體帳戶的名稱。
myshare 檔案共享的名稱。
mydirectorypath 自選。 目錄的路徑。
myfile 檔名。

URI 參數

您可以在要求 URI 上指定下列其他參數。

參數 描述
timeout 自選。 timeout 參數是以秒為單位來表示。 如需詳細資訊,請參閱 設定 Azure 檔案服務的逾時

要求標頭

下表描述必要和選擇性的要求標頭。

要求標頭 描述
Authorization 必填。 指定授權配置、帳戶名稱和簽章。 如需詳細資訊,請參閱 授權對 Azure 記憶體的要求
Datex-ms-date 必填。 指定要求的國際標準時間(UTC)。 如需詳細資訊,請參閱 授權對 Azure 記憶體的要求
x-ms-version 自選。 指定要用於此要求的作業版本。 如需詳細資訊,請參閱 Azure 記憶體服務的版本設定
x-ms-lease-id:<ID> 需要更新、變更或釋放租用。

您可以使用任何有效的 GUID 字串格式來指定 x-ms-lease-id 的值。 如需有效格式的清單,請參閱 Guid 建構函式 (String)
x-ms-lease-action: <acquire ¦ change ¦ release ¦ break> acquire:要求新的租用。 如果檔案沒有作用中的租用,Azure 檔案會在檔案上建立租用,並傳回新的租用標識符。 如果檔案具有作用中的租用,您只能使用使用中租用標識符來要求新的租用。

change:變更使用中租用的租用標識符。 change 必須在 x-ms-lease-id中包含目前的租用標識碼,並在 x-ms-proposed-lease-id中包含新的租用標識符。

release:釋放租用。 如果要求上指定的租用標識符符合與檔案相關聯的租用標識碼,您可以釋放租用。 發行租用可讓另一個用戶端在發行完成後立即取得檔案的租用。

break:如果檔案具有作用中的租用,則會中斷租用。 任何授權的要求都可以中斷租用。 不需要要求來指定相符的租用標識碼。 無限租用會立即中斷。
x-ms-lease-duration: -1 只有在 acquire 作業上才允許和必要。 必須 -1,才能指出永不過期的租用。
x-ms-proposed-lease-id: <ID> 選擇性 acquirechange為 必要專案。 建議的租用標識碼,格式為 GUID 字串。 如果建議的租用標識符格式不正確,Azure 檔案服務會傳回 400 (Invalid request)。 如需有效格式的清單,請參閱 Guid 建構函式 (String)
x-ms-client-request-id 自選。 提供客戶端產生的不透明值,其中包含設定記錄時記錄的 1-kibibyte (KiB) 字元限制。 強烈建議您使用此標頭,將用戶端活動與伺服器接收的要求相互關聯。 如需詳細資訊,請參閱 監視 Azure 檔案服務
x-ms-file-request-intent 如果 Authorization 標頭指定 OAuth 令牌,則為必要項。 可接受的值為 backup。 如果 Microsoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/actionMicrosoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action 包含在指派給使用 Authorization 標頭授權的身分識別中,則此標頭指定應授與 Microsoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/actionMicrosoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action。 適用於 2022-11-02 版和更新版本。
x-ms-allow-trailing-dot: { <Boolean> } 自選。 版本 2022-11-02 和更新版本。 布爾值會指定是否應該修剪要求 URL 中的尾端點。 如需詳細資訊,請參閱 命名和參考共用、目錄、檔案和元資料

要求本文

沒有。

範例要求

下列範例要求示範如何取得租用:

Request Syntax:  
PUT https://myaccount.file.core.windows.net/myshare/mydirectory/myfile?comp=lease HTTP/1.1  
  
Request Headers:  
x-ms-version: 2019-07-07  
x-ms-lease-action: acquire  
x-ms-lease-duration: -1  
x-ms-proposed-lease-id: 1f812371-a41d-49e6-b123-f4b542e851c5  
x-ms-date: <date>  
Authorization: SharedKey myaccount:esSKMOYdK4o+nGTuTyeOLBI+xqnqi6aBmiW4XI699+o=  

回應

回應包含 HTTP 狀態代碼和一組響應標頭。

狀態代碼

租用作業傳回的成功狀態代碼如下:

  • Acquire:成功的作業會傳回狀態代碼 201 (已建立)。
  • Change:成功的作業會傳回狀態代碼 200 (確定)。
  • Release:成功的作業會傳回狀態代碼 200 (確定)。
  • Break:成功的作業會傳回狀態代碼 202 (已接受)。

如您需狀態代碼的相關資訊,請參閱 狀態和錯誤碼

回應標頭

此作業的回應包含下表中的標頭。 回應也可能包含額外的標準 HTTP 標頭。 所有標準標頭都符合 HTTP/1.1 通訊協定規格,

回應標頭 描述
ETag 包含值,您可以用引號來有條件地執行作業。 Lease File 作業不會修改這個屬性。
Last-Modified 上次修改檔案的日期/時間。 如需詳細資訊,請參閱在標頭中 日期時間值的表示

檔案上的任何寫入作業,包括檔案元數據或屬性的更新,會變更檔案的上次修改時間。 Lease File 作業不會修改這個屬性。
x-ms-lease-id:<ID> 當您要求租用時,Azure 檔案服務會傳回唯一的租用標識符。 當租用為使用中時,您必須將租用標識碼包含在任何要求中以寫入檔案,或變更或釋放租用。

成功的更新作業也會傳回使用中租用的租用標識符。
x-ms-lease-time: seconds 只有在成功要求中斷租用時,才會傳回 。 0 會針對立即中斷傳回。
x-ms-request-id 可唯一識別已提出的要求,並可用於對要求進行疑難解答。 如需詳細資訊,請參閱 針對 API 作業進行疑難解答
x-ms-version 指出用來執行要求的 Azure 檔案服務版本。
Date UTC 日期/時間值,指出起始響應的時間。 服務會產生此值。
x-ms-client-request-id 可用來針對要求和對應的回應進行疑難解答。 如果要求中有 x-ms-client-request-id 標頭的值,則此標頭的值等於 。 此值最多為 1,024 個可見的 ASCII 字元。 如果要求中沒有 x-ms-client-request-id 標頭,它就不會出現在回應中。

回應本文

沒有。

範例回應

以下是取得租用之要求的範例回應:

Response Status:  
HTTP/1.1 201 Created  
  
Response Headers:  
Server: Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0  
x-ms-request-id: cc6b209a-b593-4be1-a38a-dde7c106f402  
x-ms-version: 2019-07-07
x-ms-lease-id: 1f812371-a41d-49e6-b123-f4b542e851c5  
Date: <date>  

授權

只有帳戶擁有者可以呼叫這項作業。

言論

檔案上的租用提供檔案的獨佔寫入和刪除存取權。 若要寫入具有使用中租用的檔案,客戶端必須包含具有寫入要求的作用中租用標識碼。 租用會獲得無限持續時間。

當用戶端取得租用時,會傳回租用標識符。 如果未在取得要求中指定租用標識符,Azure 檔案服務就會產生租用標識符。 用戶端可以使用此租用標識符來變更其租用標識碼或釋放租用。

當租用為使用中時,租用標識碼必須包含在下列任何作業的要求中:

如果未包含租用識別碼,則租用檔案上的這些作業會失敗,412 – Precondition failed

下列作業在租用的檔案上成功,但不包含租用標識碼:

在具有作用中租用的檔案上,不需要包含 GET 作業的租用標識碼。 不過,所有 GET 作業都支持條件式租用參數。 在此類型的參數中,只有在要求隨附的租用標識符有效時,才會繼續作業。

共用上允許所有共享作業,其中包含具有使用中租用的檔案,包括 刪除共用。 因此,即使其內的檔案有作用中租用,您也可以刪除共用。

租用狀態

下圖顯示租用的三種狀態,以及導致租用狀態變更的命令或事件。

顯示檔案租用狀態和狀態變更觸發程序的圖表。

租用可以有三種狀態,根據租用是否已鎖定或解除鎖定,以及租用是否在該狀態下可更新。 上圖中顯示的租用動作會導致狀態轉換。

  • Available:租用已解除鎖定,而且可以取得。 允許的動作:acquire
  • Leased:租用已鎖定。 允許的動作:acquire(僅限相同的租用識別元)、changereleasebreak
  • Broken:租用已中斷。 允許的動作:acquirereleasebreak

請注意,共用快照集中的檔案無法授與租用,因為快照集是唯讀的。 針對共用快照集中的檔案要求租用會導致狀態代碼 400 (不正確的要求)。

如果檔案租用處於 中斷 狀態,而 Put Range 作業會寫入檔案,租用狀態會變更為 Available。 不過,如果檔案已設定只讀屬性,伺服器將會傳回衝突 409。

呼叫 Lease File時,不會更新檔案的 Last-Modified-Time 屬性。

下表顯示具有各種租用狀態之檔案上動作的結果。 字母 (A)、(B) 和 (C) 代表租用標識碼,而 (X) 則代表 Azure 檔案服務所產生的租用識別符。

依租用狀態嘗試檔案的結果

行動 可用 租用 (A) 破碎 (A)
使用 (A) 撰寫 失敗 (412) 租用 (A), 寫入成功 失敗 (412)
使用 撰寫 (B) 失敗 (412) 失敗 (409) 失敗 (412)
寫入,未指定租用 可用,寫入成功 失敗 (412) 可用,寫入成功
使用 讀取 (A) 失敗 (412) 租用 (A), 讀取成功 失敗 (412)
使用 讀取 (B) 失敗 (412) 失敗 (409) 失敗 (412)
讀取,未指定租用 可用、讀取成功 租用 (A), 讀取成功 中斷 (A), 讀取成功

依租用狀態對檔案進行租用作業的結果

行動 可用 租用 (A) 破碎 (A)
Acquire,沒有建議的租用標識符 租用 (X) 失敗 (409) 租用 (X)
Acquire (A) 租用 (A) 租用 (A) 租用 (A)
Acquire (B) 租用 (B) 失敗 (409) 租用 (B)
Break 失敗 (409) 破碎 (A) 破碎 (A)
Change, (A) 至 (B) 失敗 (409) 租用 (B) 失敗 (409)
Change, (B) 到 (A) 失敗 (409) 租用 (A) 失敗 (409)
Change, (B) 至 (C) 失敗 (409) 失敗 (409) 失敗 (409)
Release (A) 失敗 (409) 可用 可用
Release (B) 失敗 (409) 失敗 (409) 失敗 (409)

另請參閱