Url'den Sayfa Yerleştir
İşlem, Put Page From URL
içeriklerin bir URL'den okunduğu sayfa blob'una bir sayfa aralığı yazar. Bu API, 2018-11-09 sürümünden itibaren kullanılabilir.
İstek
İsteği aşağıdaki gibi oluşturabilirsiniz Put Page From URL
. HTTPS kullanmanızı öneririz.
myaccount değerini depolama hesabınızın adıyla değiştirin:
PUT yöntemi istek URI'si | HTTP sürümü |
---|---|
https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=page |
HTTP/1.1 |
Öykünülmüş Depolama Hizmeti URI'si
Öykünülmüş depolama hizmetine yönelik istekte bulunmak için öykünücü konak adını ve Blob hizmeti bağlantı noktasını olarak 127.0.0.1:10000
ve ardından öykünülmüş depolama hesabı adını belirtin:
PUT yöntemi istek URI'si | HTTP sürümü |
---|---|
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob?comp=page |
HTTP/1.1 |
Daha fazla bilgi için bkz. Yerel Azure Depolama geliştirmesi için Azurite öykünücüsü kullanma.
URI parametreleri
İstek URI'sinde aşağıdaki ek parametreleri belirtebilirsiniz:
Parametre | Açıklama |
---|---|
timeout |
İsteğe bağlı.
timeout parametresi saniye cinsinden ifade edilir. Daha fazla bilgi için bkz. Blob hizmeti işlemleri için zaman aşımlarını ayarlama. |
İstek üst bilgileri
Gerekli ve isteğe bağlı istek üst bilgileri aşağıdaki tabloda açıklanmıştır:
İstek üst bilgisi | Açıklama |
---|---|
Authorization |
Gereklidir. Yetkilendirme düzenini, hesap adını ve imzayı belirtir. Daha fazla bilgi için bkz. Azure Depolama'ya istekleri yetkilendirme. |
Date veya x-ms-date |
Gereklidir. İstek için Eşgüdümlü Evrensel Saat (UTC) biçimini belirtir. Daha fazla bilgi için bkz. Azure Depolama'ya istekleri yetkilendirme. |
x-ms-version |
Tüm yetkili istekler için gereklidir. Bu istek için kullanılacak işlemin sürümünü belirtir. Daha fazla bilgi için bkz. Azure Depolama hizmetleri için sürüm oluşturma. |
Range |
Range veya x-ms-range gereklidir.Sayfa olarak yazılacak bayt aralığını belirtir. Aralığın hem başlangıcı hem de sonu belirtilmelidir. Bu üst bilgi HTTP/1.1 protokol belirtimi tarafından tanımlanır. Sayfa güncelleştirme işlemi için sayfa aralığının boyutu 4 MiB'a kadar olabilir. Sayfaların 512 baytlık sınırlarla hizalanması gerektiğinden, başlangıç uzaklığı 512 modulu olmalı ve bitiş uzaklığı 512 – 1 modülü olmalıdır. Geçerli bayt aralıklarına örnek olarak 0-511, 512-1023 vb. verilebilir. Blob hizmeti üst bilgi için Range yalnızca tek bir bayt aralığını kabul eder ve bayt aralığı şu biçimde belirtilmelidir: bytes=startByte-endByte .hem hem de Range x-ms-range belirtilirse, hizmet değerini x-ms-range kullanır. Daha fazla bilgi için bkz. Blob hizmeti işlemleri için aralık üst bilgisini belirtme. |
x-ms-range |
Range veya x-ms-range gereklidir.Sayfa olarak yazılacak bayt aralığını belirtir. Aralığın hem başlangıcı hem de sonu belirtilmelidir. Bu üst bilgi HTTP/1.1 protokol belirtimi tarafından tanımlanır. Sayfa aralığının boyutu 4 MiB'a kadar olabilir. Sayfaların 512 baytlık sınırlarla hizalanması gerektiğinden, başlangıç uzaklığı 512 modulu olmalı ve bitiş uzaklığı 512 – 1 modülü olmalıdır. Geçerli bayt aralıklarına örnek olarak 0-511, 512-1023 vb. verilebilir. Blob hizmeti üst bilgi için x-ms-range yalnızca tek bir bayt aralığını kabul eder ve bayt aralığı şu biçimde belirtilmelidir: bytes=startByte-endByte .hem hem de Range x-ms-range belirtilirse, hizmet değerini x-ms-range kullanır. Daha fazla bilgi için bkz. Blob hizmeti işlemleri için aralık üst bilgisini belirtme. |
Content-Length |
Gereklidir. İstek gövdesinde iletilen bayt sayısını belirtir. Bu üst bilginin değeri sıfır olarak ayarlanmalıdır. Uzunluk sıfır olmadığında işlem 400 (Hatalı İstek) durum koduyla başarısız olur. |
x-ms-copy-source:name |
Gereklidir. Kaynak blobun URL'sini belirtir. Değer, blob belirten en fazla 2 KiB uzunluğunda bir URL olabilir. Değer, istek URI'sinde göründüğü gibi URL ile kodlanmış olmalıdır. Kaynak blob genel olmalıdır veya paylaşılan erişim imzası aracılığıyla yetkilendirilmelidir. Kaynak blob genel ise, işlemi gerçekleştirmek için yetkilendirme gerekmez. Kaynak nesne URL'lerine bazı örnekler aşağıda verilmiştir: - https://myaccount.blob.core.windows.net/mycontainer/myblob - https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=<DateTime> - https://myaccount.blob.core.windows.net/mycontainer/myblob?versionid=<DateTime> |
x-ms-copy-source-authorization: <scheme> <signature> |
İsteğe bağlı. Kopyalama kaynağı için yetkilendirme düzenini ve imzayı belirtir. Daha fazla bilgi için bkz. Azure Depolama'ya istekleri yetkilendirme. Microsoft Entra için yalnızca bir şema taşıyıcı desteklenir. Bu üst bilgi 2020-10-02 ve sonraki sürümlerde desteklenir. |
x-ms-source-range |
Belirtilen aralıktaki kaynak URL'deki blobun baytlarını karşıya yükler. Aralığın hem başlangıcı hem de sonu belirtilmelidir. Bu üst bilgi HTTP/1.1 protokol belirtimi tarafından tanımlanır. Sayfa aralığının boyutu 4 MiB'a kadar olabilir. Blob hizmeti üst bilgi için x-ms-source-range yalnızca tek bir bayt aralığını kabul eder ve bayt aralığı şu biçimde belirtilmelidir: bytes=startByte-endByte .Daha fazla bilgi için bkz. Blob hizmeti işlemleri için aralık üst bilgisini belirtme . |
x-ms-source-content-md5 |
İsteğe bağlı. URI'den sayfa içeriğinin MD5 karması. Bu karma, verilerin URI'den taşınması sırasında sayfanın bütünlüğünü doğrulamak için kullanılır. Bu üst bilgi belirtildiğinde, depolama hizmeti kopyalama kaynağından gelen içeriğin karması ile bu üst bilgi değerini karşılaştırır. Not: Bu MD5 karması blob ile birlikte depolanmaz. İki karma eşleşmiyorsa işlem 400 (Hatalı İstek) hata koduyla başarısız olur. |
x-ms-source-content-crc64 |
İsteğe bağlı. URI'den sayfa içeriğinin CRC64 karması. Bu karma, verilerin URI'den taşınması sırasında sayfanın bütünlüğünü doğrulamak için kullanılır. Bu üst bilgi belirtildiğinde, depolama hizmeti kopyalama kaynağından gelen içeriğin karması ile bu üst bilgi değerini karşılaştırır. Not: Bu CRC64 karması blob ile birlikte depolanmaz. İki karma eşleşmiyorsa işlem 400 (Hatalı İstek) hata koduyla başarısız olur. Hem hem de x-ms-source-content-md5 x-ms-source-content-crc64 üst bilgileri varsa, istek 400 (Hatalı İstek) ile başarısız olur.Bu üst bilgi 2019-02-02 ve sonraki sürümlerde desteklenir. |
x-ms-lease-id:<ID> |
Blob etkin bir kiraya sahipse gereklidir. Bu işlemi etkin kiralaması olan bir blob üzerinde gerçekleştirmek için bu üst bilgi için geçerli kira kimliğini belirtin. |
x-ms-if-sequence-number-le: <num> |
İsteğe bağlı. Blob'un sıra numarası belirtilen değerden küçük veya buna eşitse istek devam eder. Aksi takdirde SequenceNumberConditionNotMet hatasıyla başarısız olur (HTTP durum kodu 412 – Önkoşul Başarısız oldu). |
x-ms-if-sequence-number-lt: <num> |
İsteğe bağlı. Blob'un sıra numarası belirtilen değerden küçükse istek devam eder. Aksi takdirde SequenceNumberConditionNotMet hatasıyla başarısız olur (HTTP durum kodu 412 – Önkoşul Başarısız oldu). |
x-ms-if-sequence-number-eq: <num> |
İsteğe bağlı. Blob'un sıra numarası belirtilen değere eşitse istek devam eder. Aksi takdirde SequenceNumberConditionNotMet hatasıyla başarısız olur (HTTP durum kodu 412 – Önkoşul Başarısız oldu). |
If-Modified-Since |
İsteğe bağlı. Bir DateTime değer. Sayfayı yazmak için bu koşullu üst bilgiyi yalnızca blob belirtilen tarih/saatten sonra değiştirilmişse belirtin. Blob değiştirilmediyse Blob hizmeti 412 (Önkoşul Başarısız) durum kodunu döndürür. |
If-Unmodified-Since |
İsteğe bağlı. Bir DateTime değer. Sayfayı yazmak için bu koşullu üst bilgiyi yalnızca blob belirtilen tarih/saatten sonra değiştirilmediyse belirtin. Blob değiştirilmişse Blob hizmeti 412 (Önkoşul Başarısız) durum kodunu döndürür. |
If-Match |
İsteğe bağlı. ETag değeri. Yalnızca blob'un ETag değeri belirtilen değerle eşleştiğinde sayfayı yazmak için bu koşullu üst bilgi için bir ETag değeri belirtin. Değerler eşleşmiyorsa Blob hizmeti 412 (Önkoşul Başarısız) durum kodunu döndürür. |
If-None-Match |
İsteğe bağlı. ETag değeri. Yalnızca blob'un ETag değeri belirtilen değerle eşleşmiyorsa sayfayı yazmak için bu koşullu üst bilgi için bir ETag değeri belirtin. Değerler aynıysa Blob hizmeti 412 (Önkoşul Başarısız) durum kodunu döndürür. |
x-ms-encryption-scope |
İsteğe bağlı. Kaynak içeriği şifrelemek için kullanılacak şifreleme kapsamını gösterir. Bu üst bilgi 2019-02-02 ve sonraki sürümlerde desteklenir. |
x-ms-client-request-id |
İsteğe bağlı. Günlüğe kaydetme yapılandırıldığında günlüklere kaydedilen 1 kibibayt (KiB) karakter sınırıyla istemci tarafından oluşturulan, opak bir değer sağlar. İstemci tarafı etkinlikleriyle sunucunun aldığı istekler arasında bağıntı sağlamak için bu üst bilgiyi kullanmanızı kesinlikle öneririz. Daha fazla bilgi için bkz. İzleme Azure Blob Depolama. |
Bu işlem, yalnızca belirtilen bir koşul karşılandığında işlemi yürütmek için koşullu üst bilgilerin kullanımını da destekler. Daha fazla bilgi için bkz. Blob hizmeti işlemleri için koşullu üst bilgileri belirtme.
İstek üst bilgileri (müşteri tarafından sağlanan şifreleme anahtarları)
2019-02-02 sürümünden itibaren, müşteri tarafından sağlanan bir anahtarla şifrelenmiş bir blobu şifreleme isteğinde aşağıdaki üst bilgiler belirtilebilir. Müşteri tarafından sağlanan anahtarla (ve ilgili üst bilgi kümesiyle) şifreleme isteğe bağlıdır.
İstek üst bilgisi | Açıklama |
---|---|
x-ms-encryption-key |
Gereklidir. Base64 kodlamalı AES-256 şifreleme anahtarı. |
x-ms-encryption-key-sha256 |
Gereklidir. Şifreleme anahtarının Base64 kodlamalı SHA256 karması. |
x-ms-encryption-algorithm: AES256 |
Gereklidir. Şifreleme için kullanılacak algoritmayı belirtir. Bu üst bilginin değeri olmalıdır AES256 . |
İstek gövdesi
İstek gövdesi sayfanın içeriğini içerir.
Örnek istek
Request Syntax:
PUT https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=page HTTP/1.1
Request Headers:
x-ms-date: Fri, 16 Sep 2011 22:15:50 GMT
x-ms-version: 2018-11-09
x-ms-range: bytes=0-65535
x-ms-copy-source: https://myaccount.blob.core.windows.net/mycontainer/myblob
x-ms-source-range: bytes=0-65535
Authorization: SharedKey myaccount:4KdWDiTdA9HmIF9+WF/8WfYOpUrFhieGIT7f0av+GEI=
Content-Length: 0
Yanıt
Yanıt bir HTTP durum kodu ve bir dizi yanıt üst bilgisi içerir.
Durum kodu
Başarılı bir işlem 201 (Oluşturuldu) durum kodunu döndürür.
Durum kodları hakkında daha fazla bilgi için bkz. Durum ve hata kodları.
Yanıt üst bilgileri
Bu işlemin yanıtı aşağıdaki üst bilgileri içerir. Yanıt ek standart HTTP üst bilgileri de içerebilir. Tüm standart üst bilgiler HTTP/1.1 protokol belirtimine uygundur.
Syntax | Description |
---|---|
ETag |
Blob için ETag. İstek sürümü 2011-08-18 ve üzeriyse, ETag değeri tırnak içine alınır. ETag, veya If-None-Match istek üst bilgisi için değerini belirterek koşullu Put Page From URL işlem gerçekleştirmek için If-Match kullanılabilir. |
Last-Modified |
Blob'un son değiştirildiği tarih ve saat. Tarih biçimi RFC 1123'e göredir. Daha fazla bilgi için bkz. Üst bilgilerde tarih/saat değerlerini temsil edin. Blobun meta verilerine veya özelliklerine yönelik güncelleştirmeler de dahil olmak üzere blob üzerindeki herhangi bir yazma işlemi, blobun son değiştirme zamanını değiştirir. |
Content-MD5 |
İstemcinin ileti içeriği bütünlüğünü denetleyebilmesi için döndürüldü. Bu üst bilginin değeri Blob hizmeti tarafından hesaplanır. İstek üst bilgilerinde belirtilen değerle aynı olmayabilir. Sürüm 2019-02-02 veya üzeri için, bu üst bilgi yalnızca istekte bu üst bilgi olduğunda döndürülür. |
x-ms-content-crc64 |
Sürüm 2019-02-02 veya üzeri için. İstemcinin ileti içeriği bütünlüğünü denetleyebilmesi için döndürüldü. Bu üst bilginin değeri Blob hizmeti tarafından hesaplanır. İstek üst bilgilerinde belirtilen değerle aynı olmayabilir. İstekte üst bilgi olmadığında x-ms-source-content-md5 bu üst bilgi döndürülür. |
x-ms-blob-sequence-number |
Sayfa blobu için geçerli sıra numarası. |
x-ms-request-id |
Yapılan isteği benzersiz olarak tanımlar ve isteğin sorunlarını gidermek için kullanılabilir. Daha fazla bilgi için bkz . API işlemleriyle ilgili sorunları giderme. |
x-ms-version |
İsteği yürütmek için kullanılan Blob hizmeti sürümünü gösterir. Bu üst bilgi, 2009-09-19 ve sonraki sürümlerde yapılan istekler için döndürülür. |
Date |
Hizmet tarafından oluşturulan ve yanıtın başlatıldığı saati gösteren UTC tarih/saat değeri. |
x-ms-request-server-encrypted: true/false |
Sürüm 2015-12-11 ve üzeri. İsteğin içeriği belirtilen algoritma kullanılarak başarıyla şifrelenirse ve false aksi takdirde bu üst bilginin değeri olarak ayarlanırtrue . |
x-ms-encryption-key-sha256 |
Sürüm 2019-02-02 ve üzeri. İstek şifreleme için müşteri tarafından sağlanan bir anahtar kullandıysa döndürülür, böylece istemci sağlanan anahtar kullanılarak isteğin içeriğinin başarıyla şifrelenmesini sağlayabilir. |
x-ms-encryption-scope |
Sürüm 2019-02-02 ve üzeri. İstek bir şifreleme kapsamı kullandıysa döndürülür; böylece istemci, isteğin içeriğinin şifreleme kapsamı kullanılarak başarıyla şifrelenmesini sağlayabilir. |
x-ms-client-request-id |
İsteklerde ve karşılık gelen yanıtlarda sorun gidermek için kullanılabilir. Bu üst bilginin değeri, istekte varsa ve değer 1.024'ten fazla görünür ASCII karakteri içermiyorsa üst bilginin değerine x-ms-client-request-id eşittir. İstekte x-ms-client-request-id üst bilgi yoksa yanıtta bulunmaz. |
Yanıt gövdesi
Yok.
Örnek yanıt
Response Status:
HTTP/1.1 201 Created
Response Headers:
Transfer-Encoding: chunked
x-ms-content-crc64: 77uWZTolTHU
Date: Sun, 25 Sep 2011 22:33:35 GMT
ETag: "0x8CB171BA9E94B0B"
Last-Modified: Sun, 25 Sep 2011 12:13:31 GMT
x-ms-version: 2011-08-18
x-ms-blob-sequence-number: 0
Content-Length: 0
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
Yetkilendirme
Azure Depolama'da herhangi bir veri erişim işlemi çağrılırken yetkilendirme gereklidir. İşlemi aşağıda açıklandığı gibi yetki Put Page From URL
verebilirsiniz.
Önemli
Microsoft, Azure Depolama'ya yönelik istekleri yetkilendirmek için yönetilen kimliklerle Microsoft Entra ID kullanılmasını önerir. Microsoft Entra ID, Paylaşılan Anahtar yetkilendirmesine kıyasla üstün güvenlik ve kullanım kolaylığı sağlar.
Azure Depolama, blob verilerine yönelik istekleri yetkilendirmek için Microsoft Entra ID kullanılmasını destekler. Microsoft Entra ID ile Azure rol tabanlı erişim denetimini (Azure RBAC) kullanarak güvenlik sorumlusuna izinler verilmektedir. Güvenlik sorumlusu bir kullanıcı, grup, uygulama hizmet sorumlusu veya Azure yönetilen kimliği olabilir. Güvenlik sorumlusunun kimliği, OAuth 2.0 belirtecini döndürmek için Microsoft Entra ID tarafından doğrulanır. Belirteç daha sonra Blob hizmetine karşı bir isteği yetkilendirmek için kullanılabilir.
Microsoft Entra ID kullanarak yetkilendirme hakkında daha fazla bilgi edinmek için bkz. Microsoft Entra ID kullanarak bloblara erişimi yetkilendirme.
İzinler
Aşağıda, Microsoft Entra kullanıcı, grup, yönetilen kimlik veya hizmet sorumlusunun işlemi çağırması Put Page From URL
için gereken RBAC eylemi ve bu eylemi içeren en az ayrıcalıklı yerleşik Azure RBAC rolü verilmiştir:
- Azure RBAC eylemi:Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write
- En az ayrıcalıklı yerleşik rol:Depolama Blob Verileri Katkıda Bulunanı
Azure RBAC kullanarak rol atama hakkında daha fazla bilgi edinmek için bkz. Blob verilerine erişim için Azure rolü atama.
Açıklamalar
İşlem, Put Page From URL
sayfa blob'una bir sayfa aralığı yazar. Bu işlem yalnızca var olan bir sayfa blobu üzerinde çağrılabilir. Yeni bir sayfa blobu oluşturmak için çağrılamıyor veya blok blobu üzerinde çağrılamıyor. Şu anda mevcut olmayan bir blob adıyla çağırmak Put Page From URL
BlobNotFound hatasını döndürür (HTTP durum kodu 404 – Bulunamadı).
Sürüm 2020-10-02 ve sonraki sürümlerde, kopyalama işleminin kaynağı için Microsoft Entra yetkilendirme desteklenir.
Yeni bir sayfa blobu oluşturmak için Put Blob çağrısı yapın ve sayfa blobu olarak oluşturulacak blob türünü belirtin. Sayfa blobu boyutu en fazla 8 TiB olabilir.
Blob etkin bir kiraya sahipse, istemcinin sayfa yazmak için istekte geçerli bir kira kimliği belirtmesi gerekir.
Sayfa güncelleştirme işlemleri
Çağrısı Put Page From URL
, belirtilen sayfa blobunda yerinde yazma gerçekleştirir. Belirtilen sayfadaki tüm içeriğin üzerine güncelleştirmeyle birlikte yazılır.
Önemli
Sunucu zaman aşımına uğradıysa veya bağlantınız bir Put Page From URL
sırasında kapalıysa sayfa güncelleştirilmiş veya güncelleştirilmemiş olabilir. Bu nedenle, başarılı olduğunu belirten bir yanıt alıncaya kadar güncelleştirmeyi yeniden denemeniz gerekir.
Güncelleştirme işlemi için ile gönderilen Put Page From URL
her sayfa aralığının boyutu en fazla 4 MiB olabilir. Sayfanın başlangıç ve bitiş aralığı 512 baytlık sınırlarla hizalanmalıdır. 4 MiB'tan büyük bir sayfa aralığını karşıya yüklemeye çalışırsanız, hizmet 413 durum kodunu döndürür (İstek Varlığı Çok Büyük).
Eşzamanlılık sorunlarını yönetme
Blob hizmeti, çakışan sayfalara eş zamanlı yazma işlemlerini sırayla işler. Başka bir ifadeyle, hizmet tarafından işlenen son sayfa blob'un içeriğini belirler. Bu nedenle, blob içeriğinin bütünlüğünü sağlamak için istemcinin aşağıdaki yaklaşımlardan birini veya daha fazlasını kullanarak çakışan sayfalara yazma işlemlerini işlemesi gerekir:
her başarılı çağrısı
Put Page From URL
için yanıt üst bilgisininLast-Modified
değerini de kontrol edebilirsiniz. Blob hizmetinden döndürülen yanıtların sırası, hizmet tarafından yürütülme sırasına karşılık gelmez. Ancak değeriLast-Modified
her zaman hizmetin istekleri işleme sırasını gösterir.İyimser eşzamanlılık kullanarak blob'un ETag'ine veya son değiştirme zamanına göre güncelleştirmeleri koşullu olarak gerçekleştirebilirsiniz. Eş zamanlı yazma sayısı nispeten düşükse bu yaklaşım iyi çalışır. Bu amaçla , ,
If-None-Match
If-Modified-Since
veIf-Unmodified-Since
koşullu istek üst bilgileriniIf-Match
kullanın.Kira Blobunu çağırarak blobu bir dakika boyunca diğer yazma işlemlerine karşı kilitleyebilir veya kira yenilenirse daha uzun süre çağırabilirsiniz.
Yanıtı olmayan bir isteği yeniden denemenin eşzamanlı güncelleştirmelere neden olmadığından emin olmak için blob'un sıra numarasını kullanabilirsiniz. Bu yaklaşım, sayfa yazma işlemleri için yüksek aktarım hızı gerektiren istemciler için en iyi yöntem olabilir. aşağıdaki bölümde ayrıntılı olarak açıklanmıştır.
İstekleri yeniden denemek için sayfa blobu sıra numarasını kullanma
Arama zaman aşımına Put Page From URL
uğradıysa veya yanıt döndürmediğinde, isteğin başarılı olup olmadığını kesin olarak bilmenin bir yolu yoktur. Bu nedenle isteği yeniden denemeniz gerekir, ancak Azure depolama hizmetlerinin dağıtılmış yapısı nedeniyle, yeniden denenen istek başarılı olduktan sonra özgün isteğin işlenmesi mümkündür. Gecikmeli özgün istek diğer güncelleştirmelerin üzerine yazabilir ve beklenmeyen bir sonuç verebilir. Aşağıdaki dizide bunun nasıl gerçekleşebileceği gösterilmektedir:
Put Page From URL
0. sayfaya "X" değeri yazma isteği zaman aşımına uğradı veya yanıt döndürmedi.Sayfa 0'a "X" değeri yazmak için yeniden denenen istek başarılı olur.
Sayfa 0'a "Y" değeri yazma isteği başarılı olur.
Özgün istek başarılı olur ve sayfa 0'a "X" değeri yazar.
Okuma sayfası 0, istemci bu noktada "Y" değerini beklerken "X" değerini döndürür.
Özgün istek 100-499 veya 503 (Sunucu Meşgul) arasında bir durum kodu döndürmediğinde bu tür bir çakışma oluşabilir. Bu durum kodlarından biri döndürülürse isteğin başarılı veya başarısız olduğundan emin olabilirsiniz. Ancak hizmet bu aralığın dışında bir durum kodu döndürürse, özgün isteğin durumunu bilmenin bir yolu yoktur.
Bu tür bir çakışmayı önlemek için sayfa blobunun sıra numarasını kullanarak bir isteği yeniden denediğinizde özgün isteğin daha sonra başarılı olmayacağından emin olabilirsiniz. Bunu yapmak için, özgün isteği yeniden denemeden önce sıra numarasını artırmanız gerekir. Ardından, sıra numarası beklenen sıra numarasıyla eşleşmiyorsa isteğin başarısız olduğundan emin olmak için koşullu sıra numarası üst bilgilerini kullanabilirsiniz. Aşağıdaki dizide bu yaklaşım gösterilmektedir:
İstemci, Put Blob ile bir sayfa blobu oluşturur ve sıra numarasını 0 olarak ayarlar.
Put Page From URL
Üst bilgi zaman aşımına uğradı olarak ayarlanmış veya yanıt döndürmeyen 0if-sequence-number-lt
. sayfaya1
"X" değeri yazma isteği.İstemci, sıra numarasını 1 olarak güncelleştirmek için Blob Özelliklerini Ayarla'yı çağırır.
"X" değerinin 0
if-sequence-number-lt
. sayfaya yazılıp başarılı olarak2
ayarlandığı yeniden denenmiş bir istek."Y" değerinin 0
if-sequence-number-lt
. sayfaya yazılıp başarılı olarak ayarlanması isteği2
.Özgün istek son olarak işlenir, ancak sıra numarasının 1'den küçük olması koşulunu belirttiğinden başarısız olur (üst
if-sequence-num-lt
bilgi olarak1
ayarlanır). Hata SequenceNumberConditionNotMet (HTTP durum kodu 412 – Önkoşul Başarısız oldu) hatasıdır.Okuma sayfası 0 beklenen "Y" değerini döndürür.
Ayrıca bkz.
Azure Depolama'ya yönelik istekleri yetkilendirme
Durum ve hata kodları
Blob hizmeti işlemleri için zaman aşımlarını ayarlama