從 URL 放置範圍

Put Range From URL 作業會建立要認可的新範圍,做為從 URL 讀取內容的檔案的一部分。 此 API 自 2019-02-02 版起可供使用。

通訊協定可用性

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

要求

Put Range From URL 要求的建構如下。 建議您使用 HTTPS。 以您的儲存體帳戶名稱取代 myaccount

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

URI 參數

參數 描述
timeout 選擇性。 timeout 參數以秒為單位。 如需詳細資訊,請參閱設定Azure 檔案儲存體作業的逾時

要求標頭

下表說明必要的和選擇性要求標頭:

要求標頭 描述
Authorization 必要。 指定授權配置、帳戶名稱和簽章。 如需詳細資訊 ,請參閱授權對 Azure 儲存體的要求
Datex-ms-date 必要。 指定要求的「國際標準時間」(UTC)。 如需詳細資訊,請參閱授權對 Azure 儲存體提出要求
x-ms-version 所有已授權要求都需要。 指定用於這個要求的作業版本。 如需詳細資訊,請參閱 Azure 儲存體服務的版本。 針對 Put Range From URL ,版本必須是 2019-02-02 或更新版本。
x-ms-copy-source:name 必要。 指定來源檔案的 URL。 此值可以是長度上限為 2 KiB 的 URL,指定檔案。 此值應該像出現在要求 URI 中一樣以 URL 編碼。 來源檔案必須是公用,或必須透過共用存取簽章獲得授權。 如果來源檔案是公用的,則不需要授權才能執行作業。 以下是來源物件 URL 的一些範例:
  • https://myaccount.file.core.windows.net/myshare/mydir/myfile
  • https://myaccount.file.core.windows.net/myshare/mydir/myfile?<sastoken>
x-ms-copy-source-authorization: <scheme> <signature> 選擇性。 指定複製來源的授權配置和簽章。 如需詳細資訊,請參閱授權對 Azure 儲存體提出要求
只有 Azure Active Directory 支援配置持有人。
2020-10-02 版和更新版本支援此標頭。
x-ms-write: { update } 必要。 您只能 update 指定 。 如果使用 呼叫 clear 要求,則要求會失敗。 值 update 會將要求本文所指定的位元組寫入指定的範圍。
Rangex-ms-range 必要。 需要 Rangex-ms-range

指定要寫入的位元組範圍。 您必須指定開始和結束範圍。 此標頭是由 HTTP/1.1 通訊協定規格所定義。

針對更新作業,範圍的大小上限為 4 MiB。

Azure 檔案儲存體只接受 和 x-ms-range 標頭的單一位元組範圍 Range ,而且必須以下列格式指定位元組範圍: bytes=startByte-endByte

如果同時指定 Rangex-ms-range,服務會使用 x-ms-range 的值。 如需詳細資訊,請參閱指定Azure 檔案儲存體作業的範圍標頭
x-ms-source-range 必要。 指定要從來源讀取的位元組範圍。 您必須指定開始和結束範圍。

Azure 檔案儲存體只接受 和 x-ms-range 標頭的單一位元組範圍 Range ,而且必須以下列格式指定位元組範圍: bytes=startByte-endByte

來源範圍的大小上限為 4 MiB。 如果來源範圍大小超過 4 MiB,Azure 檔案儲存體會傳回狀態碼 413 (要求實體太大) 。 如果來源範圍大小不符合目標範圍 (目標範圍) 大小,服務會傳回狀態碼 400 (不正確的要求) 。
Content-Length 必要。 指定要求主體中所傳輸的位元組數目。 此標頭的值必須設定為 0。 當長度不是 0 時,作業會失敗,狀態碼為 400 (不正確的要求) 。
x-ms-client-request-id 選擇性。 提供用戶端產生的不透明值,其中包含設定記錄時記錄的 1 kibibyte (KiB) 字元限制。 強烈建議您使用此標頭,將用戶端活動與伺服器接收的要求相互關聯。 如需詳細資訊,請參閱監視Azure 檔案儲存體
x-ms-source-content-crc64 選擇性。 URI 中指定範圍的 CRC64 雜湊。 此雜湊可用來驗證從 URI 傳輸資料期間範圍的完整性。 指定此標頭時,Azure 檔案儲存體會比較從複製來源到達的內容雜湊與這個標頭值。

注意:此 CRC64 雜湊不會與檔案一起儲存。

如果兩個雜湊不相符,作業會失敗,錯誤碼為 400 (不正確的要求) 。
x-ms-source-if-match-crc64 選擇性。 CRC64 總和檢查碼值。 只有在從提供總和檢查碼讀取來源相符之指定範圍的總和檢查碼時,才指定此標頭來執行作業。

如果不符合指定的條件,Azure 檔案儲存體會傳回狀態碼 412 (前置條件失敗) 。
x-ms-source-if-none-match-crc64 選擇性。 CRC64 總和檢查碼值。 只有當從來源讀取的指定範圍總和檢查碼與提供總和檢查碼不同時,才指定此標頭來執行作業。

如果不符合指定的條件,Azure 檔案儲存體會傳回狀態碼 412 (前置條件失敗) 。
x-ms-lease-id:<ID> 如果檔案有作用中的租用,則為必要專案。 若要在具有使用中租用的檔案上執行這項作業,請為此標頭指定有效的租用識別碼。
x-ms-client-request-id 選擇性。 提供用戶端產生的不透明值,其中包含 1 kibibyte (KiB) 字元限制,這會在啟用 Azure 儲存體分析記錄時記錄在分析記錄中。 強烈建議您在將用戶端活動與伺服器收到的要求相互關聯時,請使用此標頭。 如需詳細資訊,請參閱 監視 Blob 儲存體
x-ms-file-last-write-time: { now ¦ preserve } 選擇性。 版本 2021-06-08 和更新版本。 您可以指定下列其中一個選項:
  • now:預設值。 更新上次寫入時間時間戳記到要求的時間。
  • preserve:保留現有的上次寫入時間戳記不變。
x-ms-file-request-intent 如果 Authorization 標頭指定 OAuth 權杖,則為必要專案。 可接受的值為 backup 。 此標頭會 Microsoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/action 指定 ,如果在指派給使用 Authorization 標頭授權的身分識別的 RBAC 原則中包含 ,則應該授與 或 Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action 。 適用于 2022-11-02 版和更新版本。
x-ms-allow-trailing-dot: { <Boolean> } 選擇性。 版本 2022-11-02 和更新版本。 布林值會指定是否應該修剪要求 URL 中的尾端點。 如需詳細資訊,請參閱 命名和參考共用、目錄、檔案和中繼資料
x-ms-source-allow-trailing-dot: { <Boolean> } 選擇性。 版本 2022-11-02 和更新版本。 布林值會指定是否應該修剪來源 URL 中的尾端點。 只有當複製來源是 Azure 檔案時,才應該指定此標頭。 任何其他複製來源類型都不支援此標頭。 如需詳細資訊,請參閱 命名和參考共用、目錄、檔案和中繼資料

要求本文

沒有要求本文。

範例要求

Request Syntax:  
PUT https://myaccount.file.core.windows.net/myshare/mydir/myfile?comp=range HTTP/1.1  
  
Request Headers:  
x-ms-page-write: update  
x-ms-copy-source: http://myaccount2.file.core.windows.net/myshare2/mydirectory2/myfile2?sv=2018-11-09&sp=r&sr=s&se=2018-08-22T09%3A59%3A28.2185790Z&sig=Qn6QEET3Gn%2FhCEVcXuwG7ssatIYiYRM5pNIy4Q3N0cQ%3D 
x-ms-date: Fri, 22 Aug 2018 01:15:50 GMT  
x-ms-version: 2019-02-02 
x-ms-range: bytes=100-1023  
x-ms-source-range: bytes=200-1123  
x-ms-source-content-crc64: 3bedb8b3730fc205 
Authorization: SharedKey myaccount:4KdWDiTdA9HmIF9+WF/8WfYOpUrFhieGIT7f0av+GEI=  
Content-Length: 0 

回應

回應包括 HTTP 狀態碼和一組回應標頭。

狀態碼

成功的作業會傳回狀態碼「201 (已建立)」。

如需狀態碼的詳細資訊,請參閱 狀態和錯誤碼

回應標頭

這項作業的回應包括下列標頭。 回應也可能包括其他標準 HTTP 標頭。 所有標準標頭都符合 HTTP/1.1 通訊協定規格

回應標頭 描述
ETag 包含可用來有條件地執行作業的值。 此值會以引號括住。
Last-Modified 上次修改檔案的日期和時間。 日期格式會依照 RFC 1123。 如需詳細資訊,請參閱 標頭中的日期/時間值表示

檔案上的任何寫入作業,包括檔案中繼資料或屬性的更新,都會變更檔案的上次修改時間。 
x-ms-request-id 可唯一識別提出的要求,而且您可以使用它對要求進行疑難排解。 如需詳細資訊,請參閱 針對 API 作業進行疑難排解
x-ms-version 指出用來執行要求的 FileREST API 版本。
Date 服務所產生的 UTC 日期/時間值,表示起始回應的時間。
x-ms-content-crc64 傳回 ,讓用戶端可以檢查訊息內容完整性。 此標頭的值是由 Azure 檔案儲存體 計算。 它不一定與要求標頭中指定的值相同。
x-ms-client-request-id 可用來針對要求和對應的回應進行疑難排解。 如果此標頭存在於要求中,且值包含不超過 1,024 個可見的 ASCII 字元,則此標頭的值等於 標頭的值 x-ms-client-request-idx-ms-client-request-id如果要求中沒有標頭,它就不會出現在回應中。
x-ms-file-last-write-time 版本 2021-06-08 和更新版本。 檔案的最後一次寫入時間,以 ISO 8601 格式 (例如) 2017-05-10T17:52:33.9551861Z

範例回應

Response Status:  
HTTP/1.1 201 Created  

Response Headers:
Date: Sun, 22 Aug 2020 01:33:35 GMT  
ETag: "0x8CB171BA9E94B0B"  
Last-Modified: Wed, 22 Aug 2020 01:13:31 GMT  
x-ms-version: 2019-02-02
x-ms-content-crc64: 3bedb8b3730fc205 
Content-Length: 0  
Server: Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0  

授權

帳戶擁有者以及具有寫入此檔案或 Azure 檔案共用許可權的共用存取簽章的任何人都可以呼叫此作業。

備註

Put Range From URL 作業會將資料範圍寫入檔案。 如果在目標上不存在的檔案上呼叫 API,API 會傳回 HTTP 狀態碼 404 (找不到) 。

在 2020-10-02 版和更新版本中,複製作業的來源支援 Azure Active Directory 授權。

若要建立新的檔案,請呼叫 Create File

Put Range From URL 只有在指定的範圍寫入檔案時,operation 才會傳回 success 201 (Created) 。

檔案讀取作業
Put Range From URL 會使用 Get File 從來源讀取資料和中繼資料、屬性和 ACL。

檔案更新作業
使用 「update」 選項呼叫 Put Range From URL 會在指定的檔案上執行就地寫入。 指定檔案中的任何內容會以更新覆寫。  

更新作業作業中的 Put Range From URL 範圍大小可高達 4 MiB 大小。 如果您嘗試上傳大於 4 MiB 的範圍,Azure 檔案儲存體會傳回狀態碼 413 (RequestEntityTooLarge) 。