銷售: 1-800-867-1380

放置範圍

更新日期: 2015年4月

Put Range 作業會將一連串位元組寫入檔案。

Put Range 要求的建構如下。建議使用 HTTPS。

 

方法 要求 URI HTTP 版本

PUT

https://myaccount.file.core.windows.net/myshare/mydirectorypath/myfile?comp=range

HTTP/1.1

將要求 URI 中的路徑元件取代為您自己的路徑元件,如下所示:

 

路徑元件 說明

myaccount

儲存體帳戶的名稱。

myshare

檔案共用的名稱。

mydirectorypath

選擇性。上層目錄的路徑。

myfile

檔案名稱。

如需路徑命名限制的詳細資料,請參閱<命名和參考共用、目錄、檔案和中繼資料>。

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

 

參數 說明

timeout

選擇性。timeout 參數以秒為單位。如需詳細資訊,請參閱設定檔案服務作業的逾時值

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

 

要求標頭 說明

Authorization

必要項。指定驗證配置、帳戶名稱及簽章。如需詳細資訊,請參閱Azure 儲存體服務的驗證

Datex-ms-date

必要項。指定要求的國際標準時間 (UTC)。如需詳細資訊,請參閱Azure 儲存體服務的驗證

x-ms-version

所有已驗證要求的必要項。指定用於這個要求的作業版本。如需詳細資訊,請參閱為 Windows Azure 中的 Blob、佇列和表格服務進行版本設定

Rangex-ms-range

需要 Rangex-ms-range

指定要寫入的位元組範圍。您必須指定開始和結束範圍。此標頭由 HTTP/1.1 protocol specification 定義。

若為更新作業,範圍的大小上限為 4 MB。若為清除作業,範圍的值最大可以是檔案的完整大小。

檔案服務只接受單一位元組範圍做為 Rangex-ms-range 標頭,而且必須以下列格式指定位元組範圍:bytes=startByte-endByte

如果同時指定 Rangex-ms-range,服務會使用 x-ms-range 的值。如需詳細資訊,請參閱指定檔案服務作業的範圍標頭

Content-Length

必要項。指定要求主體中所傳輸的位元組數目。當 x-ms-write 標頭設為 clear 時,您必須將此標頭的值設為零。

Content-MD5

選擇性。內容的 MD5 雜湊。在傳輸期間,此雜湊用來驗證資料的完整性。指定 Content-MD5 標頭時,檔案服務會比較已送達的內容雜湊與傳送的標頭值。如果這兩個雜湊不相符,作業會失敗,並顯示錯誤碼 400 (不正確的要求)。

Content-MD5 標頭設為 x-ms-write 時,不允許使用 clear 標頭。如果要求中包含此標頭,檔案服務會傳回狀態碼 400 (不正確的要求)。

x-ms-write: {update | clear}

必要項。您可以指定下列其中一個選項:

  • Update:將要求主體所指定的位元組寫入指定的範圍。RangeContent-Length 標頭必須相符,才能執行更新。

  • Clear:清除指定的範圍,並釋放該範圍所使用的儲存空間。若要清除範圍,請將 Content-Length 標頭設為零,並設定 Range 標頭的值來指出要清除的範圍 (最大為檔案大小上限)。

無。

Request Syntax:
PUT https://myaccount.file.core.windows.net/myshare/myfile?comp=range HTTP/1.1

Request Headers:
x-ms-write: update
x-ms-date: Mon, 27 Jan 2014 22:15:50 GMT
x-ms-version: 2014-02-14
x-ms-range: bytes=0-65535
Authorization: SharedKey myaccount:4KdWDiTdA9HmIF9+WF/8WfYOpUrFhieGIT7f0av+GEI=
Content-Length: 65536

Request Syntax:
PUT https://myaccount.file.core.windows.net/myshare/myfile?comp=range HTTP/1.1

Request Headers:
Range: bytes=1024-2048
x-ms-write: clear
x-ms-date: Mon, 27 Jan 2014 23:37:35 GMT
x-ms-version: 2014-02-14
Authorization: SharedKey myaccount:4KdWDiTdA9HmIF9+WF/8WfYOpUrFhieGIT7f0av+GEI=

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

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

如需狀態碼的資訊,請參閱<狀態和錯誤碼>。

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

 

回應標頭 說明

ETag

ETag 含有代表檔案版本的值 (以引號括住)。

Last-Modified

傳回上次修改目錄的日期和時間。日期格式會依照 RFC 1123。如需詳細資訊,請參閱<標頭中的日期/時間值表示方式>。修改共用或其屬性或中繼資料的任何作業,都會更新上次修改時間。對檔案執行作業不會影響上次修改共用的時間。

Content-MD5

傳回此標頭,以供用戶端檢查訊息內容完整性。檔案服務會計算此標頭的值,此值與要求標頭中已指定的值不一定相同。

x-ms-request-id

此標頭可唯一識別提出的要求,而且可用來進行要求的疑難排解。如需詳細資訊,請參閱對應用程式開發介面作業進行疑難排解

x-ms-version

指出用來執行要求的檔案服務版本。

Date

服務產生的 UTC 日期/時間值,可指出啟動回應的時間。

無。

 
Response Status:
HTTP/1.1 201 Created

Response Headers:
Transfer-Encoding: chunked
Content-MD5: sQqNsWTgdUEFt6mb5y4/5Q==
Date:Mon, 27 Jan 2014 22:33:35 GMT
ETag: "0x8CB171BA9E94B0B"
Last-Modified: Mon, 27 Jan 2014 12:13:31 GMT
x-ms-version: 2014-02-14
Content-Length: 0
Server: Windows-Azure-File/1.0 Microsoft-HTTPAPI/2.0

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

Put Range 作業會將一連串位元組寫入檔案。您只能對現有的檔案呼叫這項作業。無法呼叫它來建立新的檔案。以目前不存在的檔名呼叫 Put Range 會傳回狀態碼 404 (找不到)。

若要建立新的檔案,請呼叫 建立檔案。檔案的大小上限為 1 TB。

Put Range 作業每 MB 的允許完成時間為 10 分鐘。如果每 MB 平均超過 10 分鐘,則作業會逾時。

範圍更新作業

搭配 Update 選項呼叫 Put Range 可在指定的檔案中執行就地寫入。指定範圍中的所有內容都會以更新的內容覆寫。使用 Put Range 針對更新作業所提交之每個範圍的大小上限為 4 MB。如果您嘗試上傳超過 4 MB 的範圍,服務會傳回狀態碼 413 (要求實體太大)。

範圍清除作業

搭配 Clear 選項呼叫 Put Range 可釋放儲存體中的空間,但指定的範圍必須是 512 位元組對齊。已清除的範圍不會再於檔案中追蹤,也不會在 列出範圍 回應中傳回。如果指定的範圍不是 512 位元組對齊,此作業會在不是 512-位元組對齊的範圍開頭或結尾寫入零,並釋出範圍內 512 位元組對齊的其餘部分。

任何未清除的範圍會在 列出範圍 回應中傳回。例如,請參閱下列未對齊的清除範圍範例

SMB 用戶端位元組範圍鎖定

雖然 SMB 通訊協定允許位元組範圍鎖定來管理檔案各區域的讀取和寫入存取權,但 Put Range 作業不會利用這項功能指定 x-ms-range 值。相反地,Put Range 需要整個檔案的寫入存取權。這也表示如果 SMB 用戶端鎖定檔案內的任何範圍,Put Range 將會失敗。如需詳細資訊,請參閱管理檔案鎖定

SMB 用戶端目錄變更通知

SMB 通訊協定支援 FindFirstChangeNotification API 函數,可讓應用程式偵測到檔案系統中發生變更。它可以偵測到已新增、變更、刪除檔案或目錄,以及檔案的大小、屬性或安全性描述元變更。在透過檔案服務 REST API 進行檔案或目錄變更,使用此 API 的 SMB 用戶端不會收到通知。。不過,其他 SMB 用戶端所造成的變更會傳播通知。

未對齊的清除範圍範例

假設以 建立檔案 建立檔案,並以 Put Range 寫入單一範圍,如下所示:

 
Request Syntax:
PUT https://myaccount.file.core.windows.net/myshare/myfile?comp=range HTTP/1.1

Request Headers:
x-ms-write: updte
x-ms-date: Mon, 27 Jan 2014 22:15:50 GMT
x-ms-version: 2014-02-14
x-ms-range: bytes=0-65536
Authorization: SharedKey myaccount:4KdWDiTdA9HmIF9+WF/8WfYOpUrFhieGIT7f0av+GEI=
Content-Length: 65536

對檔案執行 列出範圍 作業會傳回下列回應內文:

<?xml version="1.0" ecoding="utf-8"?>
<Ranges>
 <Range>
  <Start>0</Start>
  <End>65536</End>
 </Range>
</Ranges>

現在,假設執行未對齊的清除範圍位元組範圍作業:

Request Syntax:
PUT https://myaccount.file.core.windows.net/myshare/myfile?comp=range HTTP/1.1

Request Headers:
Range: bytes=768-2304
x-ms-write: clear
x-ms-date: Mon, 27 Jan 2014 23:37:35 GMT
x-ms-version: 2014-02-14
Authorization: SharedKey myaccount:4KdWDiTdA9HmIF9+WF/8WfYOpUrFhieGIT7f0av+GEI=

對檔案執行後續的 列出範圍 作業會傳回下列回應內文:

<?xml version="1.0" encoding="utf-8"?>
<Ranges>
 <Range>
  <Start>0</Start>
  <End>1024</End>
 </Range>
 <Range>
  <Start>2048</Start>
  <End>65535</End>
 </Range>
</Ranges>

請注意,未對齊的空間 768-1024 和 2048-2304 已寫入零。

本文對您有任何幫助嗎?
(剩餘 1500 個字元)
感謝您提供意見
Microsoft 正展開一份線上問卷調查,了解您對於 MSDN 網站的看法。 如果您選擇參加,您離開 MSDN 網站時即會顯示線上問卷調查。

您是否想要參加?
顯示:
© 2015 Microsoft