匯出 (0) 列印
全部展開
本主題尚未接受評分 - 為這個主題評分

取得區塊清單 (REST 應用程式開發介面)

更新日期: 2014年1月

Get Block List 作業可擷取已上傳做為區塊 Blob 一部分的區塊清單。

Blob 使用兩個區塊清單:

您可以呼叫 Get Block List 傳回認可的區塊清單、未認可的區塊清單,或兩種清單一起傳回。您也可以呼叫這項作業,以擷取快照集之認可的區塊清單。

Get Block List 要求的建構如下。建議使用 HTTPS。請以您的儲存體帳戶名稱取代 myaccount

 

GET 方法要求 URI HTTP 版本

https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=blocklist

https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=blocklist&snapshot=<DateTime>

HTTP/1.1

模擬儲存體服務 URI

對模擬儲存體服務提出要求時,請將模擬器主機名稱和 Blob 服務通訊埠指定為 127.0.0.1:10000,後面接著模擬儲存體帳戶名稱:

 

GET 方法要求 URI HTTP 版本

http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob?comp=blocklist

HTTP/1.1

如需詳細資訊,請參閱<About Development Storage>。

URI 參數

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

 

URI 參數 說明

snapshot

選擇性。快照集參數是不透明的 DateTime 值,當其存在時,會指定要擷取的 Blob 清單。如需使用 Blob 快照集的詳細資訊,請參閱<建立 Blob 的快照集>。

blocklisttype

指定傳回認可的區塊清單、未認可的區塊清單,或兩種清單一起傳回。有效值為 committeduncommittedall。如果您省略此參數,Get Block List 會傳回認可的區塊清單。

timeout

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

要求標頭

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

 

要求標頭 說明

Authorization

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

Datex-ms-date

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

x-ms-version

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

x-ms-lease-id:<ID>

選擇性。如果指定此標頭,只有同時符合下列兩個條件時,才會執行作業:

  • Blob 的租用目前為作用中。

  • 要求中所指定的租用識別碼與 Blob 中的租用識別碼相符。

如果指定此標頭但不符合任何一項條件,則要求和作業會失敗,並顯示狀態碼 412 (先決條件失敗)。

x-ms-client-request-id

選擇性。提供由用戶端產生的不透明值 (具有 1 KB 的字元限制),當儲存體分析記錄為啟用狀態時,此值會記錄在分析記錄檔中。如果是和伺服器所接收的要求相關的用戶端活動,則強烈建議您使用此標頭。如需詳細資訊,請參閱<關於儲存體分析記錄>和<Windows Azure 儲存體記錄:使用記錄檔追蹤儲存體要求>。

唯有在符合指定條件的情況下,此作業也可支援使用條件式標頭讀取 Blob。如需詳細資訊,請參閱<指定 Blob 服務作業的條件式標頭>。

要求主體

無。

範例要求

下列範例要求 URI 會傳回名為 MOV1.avi 的 Blob 之認可的區塊清單:

GET http://myaccount.blob.core.windows.net/movies/MOV1.avi?comp=blocklist&blocklisttype=committed HTTP/1.1

下列範例要求 URI 會同時傳回認可及未認可的區塊清單:

GET http://myaccount.blob.core.windows.net/movies/MOV1.avi?comp=blocklist&blocklisttype=all HTTP/1.1

下列範例要求 URI 會傳回快照集之認可的區塊清單:請注意,快照集只包含認可的區塊,因此沒有相關聯之未認可的區塊。

GET http://myaccount.blob.core.windows.net/mycontainer/myblob?comp=blocklist&snapshot=2009-09-30T20%3a11%3a15.2735974Z

回應包括 HTTP 狀態碼、一組回應標頭,以及含有區塊清單的回應主體。

狀態碼

成功的作業會傳回狀態碼 200 (確定)。

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

回應標頭

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

 

回應標頭 說明

Last-Modified

上次修改 Blob 的日期/時間。日期格式會依照 RFC 1123。如需詳細資訊,請參閱<標頭中的日期/時間值表示方式>。只有在 Blob 含有認可的區塊時,才會傳回此標頭。

修改 Blob 的任何作業 (包括 Blob 的中繼資料或屬性更新) 都會變更 Blob 上次修改的時間。

ETag

ETag 包含用戶端可用來建構條件式要求的值。如需詳細資訊,請參閱<指定 Blob 服務作業的條件式標頭>。

只有在 Blob 含有認可的區塊時,才會傳回此標頭。

Content-Type

Blob 的 MIME 內容類型。預設值為 application/xml

x-ms-blob-content-length

Blob 的大小 (以位元組為單位)。

x-ms-request-id

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

x-ms-version

指出用於執行要求的 Blob 服務版本。對 2009-09-19 及更新版本提出要求會傳回此標頭。

如果容器使用 2009-09-19 版的 Blob 服務標示公開存取,也會針對未指定版本的匿名要求傳回此標頭。請注意,只有認可的區塊清單可透過匿名要求傳回。

Date

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

回應主體

僅傳回認可的區塊之要求回應主體的格式如下:

<?xml version="1.0" encoding="utf-8"?>
<BlockList>
  <CommittedBlocks>
    <Block>
      <Name>base64-encoded-block-id</Name>
      <Size>size-in-bytes</Size>
    </Block>
  <CommittedBlocks>
</BlockList>

同時傳回認可及未認可的區塊之要求回應主體的格式如下:


<?xml version="1.0" encoding="utf-8"?>
<BlockList>
  <CommittedBlocks>
     <Block>
        <Name>base64-encoded-block-id</Name>
        <Size>size-in-bytes</Size>
     </Block>
  </CommittedBlocks>
  <UncommittedBlocks>
    <Block>
      <Name>base64-encoded-block-id</Name>
      <Size>size-in-bytes</Size>
    </Block>
  </UncommittedBlocks>
 </BlockList>

範例回應

在下列範例中,blocklisttype 參數已設為 committed,因此只會在回應中傳回 Blob 之認可的區塊。

HTTP/1.1 200 OK
Transfer-Encoding: chunked
Content-Type: application/xml
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: 42da571d-34f4-4d3e-b53e-59a66cb36f23
Date: Sun, 25 Sep 2011 00:33:19 GMT

<?xml version="1.0" encoding="utf-8"?>
<BlockList>
  <CommittedBlocks>
    <Block>
      <Name>BlockId001</Name>
      <Size>4194304</Size>
    </Block>
    <Block>
      <Name>BlockId002</Name>
      <Size>4194304</Size>
    </Block>
  </CommittedBlocks>
</BlockList>

在下列範例中,blocklisttype 參數已設為 all,因此會在回應中同時傳回 Blob 之認可及未認可的區塊。

HTTP/1.1 200 OK
Transfer-Encoding: chunked
Content-Type: application/xml
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: 42da571d-34f4-4d3e-b53e-59a66cb36f23
Date: Sun, 25 Sep 2011 00:35:56 GMT

<?xml version="1.0" encoding="utf-8"?>
<BlockList>
  <CommittedBlocks>
    <Block>
      <Name>BlockId001</Name>
      <Size>4194304</Size>
    </Block>
    <Block>
      <Name>BlockId002</Name>
      <Size>4194304</Size>
    </Block>
  </CommittedBlocks>
  <UncommittedBlocks>
    <Block>
      <Name>BlockId003</Name>
      <Size>4194304</Size>
    </Block>
    <Block>
      <Name>BlockId004</Name>
      <Size>1024000</Size>
    </Block>
  </UncommittedBlocks>
</BlockList>

在下一個範例中,blocklisttype 參數已設為 all,但尚未認可 Blob,因此,CommittedBlocks 項目為空白。

HTTP/1.1 200 OK
Transfer-Encoding: chunked
Content-Type: application/xml
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: 42da571d-34f4-4d3e-b53e-59a66cb36f23
Date: Wed, 14 Sep 2011 00:40:22 GMT

<?xml version="1.0" encoding="utf-8"?>
<BlockList>
  <CommittedBlocks />
  <UncommittedBlocks>
    <Block>
      <Name>BlockId001</Name>
      <Size>1024</Size>
    </Block>
    <Block>
      <Name>BlockId002</Name>
      <Size>1024</Size>
    </Block>
    <Block>
      <Name>BlockId003</Name>
      <Size>1024</Size>
    </Block>
    <Block>
      <Name>BlockId004</Name>
      <Size>1024</Size>
    </Block>
  </UncommittedBlocks>
</BlockList>

如果將容器的 ACL 設為允許匿名存取,任何用戶端都可呼叫 Get Block List,但只可公開存取認可的區塊。只有帳戶擁有者及使用共用存取簽章並有權讀取此 Blob 或其容器的任何人,才能存取未認可的區塊清單。

呼叫 Get Block List 傳回已認可至區塊 Blob 的區塊清單、尚未認可的區塊清單,或兩種清單一起。使用 blocklisttype 參數可指定要傳回的區塊清單。

認可的區塊清單會按照 放置區塊清單 (REST 應用程式開發介面) 作業當初認可的相同順序傳回。認可的區塊清單中不能有重複的區塊。

您可以使用未認可的區塊清單,判斷 Blob 中遺漏的區塊,以免 Put BlockPut Block List 的呼叫失敗。傳回未認可的區塊清單時,其傳回順序為從最近上傳的區塊開始,一直到最早上傳的區塊為止。如果重複上傳相同的區塊識別碼,清單中只會顯示最近上傳的區塊。

請注意,如果尚未認可 Blob,搭配 blocklisttype=all 呼叫 Get Block List 會傳回未認可的區塊,且 CommittedBlocks 項目為空白。

Get Block List 只適用於區塊 Blob。對分頁 Blob 呼叫 Get Block List 會導致狀態碼 400 (不正確的要求)。

本文對您有任何幫助嗎?
(剩餘 1500 個字元)
感謝您提供意見
顯示:
© 2014 Microsoft. 著作權所有,並保留一切權利。