Blob hizmeti işlemleri için aralık üst bilgisini belirtme

Çeşitli Blob hizmeti GET işlemleri, standart HTTP Range üst bilgisinin kullanımını destekler. .NET istemci kitaplığı da dahil olmak üzere birçok HTTP istemcisi üst bilginin boyutunu Range 32 bitlik bir tamsayıyla sınırlar ve bu nedenle değeri en fazla 4 GiB ile sınırlıdır. Hem blok bloblarının hem de sayfa bloblarının boyutu 4 GiB'den büyük olabileceğinden, Blob hizmeti HTTP Range üst bilgisi alan tüm işlemler için özel bir aralık üst bilgisi x-ms-range kabul eder.

Microsoft Silverlight kitaplığı da dahil olmak üzere bazı HTTP istemcileri, üst bilgi erişimini Range tamamen sınırlar. Üst x-ms-range bilgi, bu sınırlamaları aşmak için de kullanılabilir.

x-ms-range Üst bilgi bir istekte belirtilirse, hizmet tarafından x-ms-rangebelirtilen aralığı kullanır; aksi takdirde, üst bilgi tarafından Range belirtilen aralık kullanılır.

Not

Azure Depolama İstemci Kitaplığı, nesnenin özelliğini ayarladığınızda istekte uygun aralık üst bilgisinin ayarlanmasını RangePutPageProperties otomatik olarak işler.

Aralık Üst Bilgisi Biçimleri

Blob hizmeti ve x-ms-range üst bilgileri için Range iki bayt aralığı kabul eder. Bayt aralığı, üst bilgiler için aşağıdaki biçimlerden birini içermelidir:

  • bytes=startByte- sürüm 2011-08-18 veya üzerini kullanan istekler için

  • bytes=startByte-endByte tüm sürümleri kullanan istekler için (en yeni sürümden 2009-04-14)

Biçim 1: bytes=startByte-

İlk biçim olan , bytes=startByte-yalnızca sürüm 2011-08-18 veya üzerini ya da SDK 1.6 veya daha yeni bir sürümdeki depolama öykünücüsü hizmetini kullanan istekler için kullanılabilir. Bu aralık, blobun sonuna kadar uzaklıktan startByte bayt döndürür. Örneğin, bir blobun ilk 256 baytından sonraki tüm baytları kapsayan bir aralık belirtmek için aşağıdaki üst bilgilerden birini geçirebilirsiniz:

  • Range: bytes=255-

  • x-ms-range: bytes=255-

Content-Length Yanıttaki üst bilgi, blobun sonuna kadar uzaklıktan alınan bayt sayısına eşittir. Uzunluğu 1.024 bayt Content-Length olan bir blob için yukarıdaki örnek aralığın kullanılması 756 olacaktır.

Uzaklık geçerliyse ve blob'un toplam uzunluğunu geçmiyorsa istek 206 (Kısmi İçerik) durum kodu döndürür. Uzaklık geçersizse ve blob'un toplam uzunluğunu aşarsa, istek 416 (İstenen Aralık Uygun Değil) durum kodunu döndürür.

Biçim 2: bytes=startByte-endByte

İkinci biçim olan , bytes=startByte-endBytetüm sürümleri kullanan istekler (en yeni sürümden 2009-04-14) ve depolama öykünücü hizmetinin tüm sürümleri için kullanılabilir. Bu aralık, aracılığıyla endByteuzaklıktan startByte bayt döndürür. Örneğin, bir blobun ilk 512 baytını kapsayan bir aralık belirtmek için aşağıdaki üst bilgilerden birini geçirirsiniz:

  • Range: bytes=0-511

  • x-ms-range: bytes=0-511

Content-Length Yanıttaki üst bilgi, her uzaklık arasındaki bayt sayısına eşittir. Uzunluğu 1.024 bayt Content-Length olan bir blob için yukarıdaki örnek aralığın kullanılması 512 olacaktır.

Uzaklık geçerliyse ve blob'un toplam uzunluğunu geçmiyorsa istek 206 (Kısmi İçerik) durum kodu döndürür. Uzaklık geçersizse ve blob'un toplam uzunluğunu aşarsa, istek 416 (İstenen Aralık Uygun Değil) durum kodunu döndürür.

Ayrıca Bkz.

Blob Hizmeti Kavramları
Azure Depolama Hizmetleri için sürüm oluşturma