Aralığı Koy

İşlem bir Put Range dosyaya bir bayt aralığı yazar.

Protokol kullanılabilirliği

Etkin dosya paylaşımı protokolü Kullanılabilir
SMB Evet
NFS No

İstek

İstek Put Range aşağıdaki gibi oluşturulabilir. HTTPS kullanmanızı öneririz.

Yöntem İstek URI'si HTTP sürümü
PUT https://myaccount.file.core.windows.net/myshare/mydirectorypath/myfile?comp=range HTTP/1.1

İstek URI'sinde gösterilen yol bileşenlerini aşağıdaki gibi kendinizle değiştirin:

Yol bileşeni Açıklama
myaccount Depolama hesabınızın adı.
myshare Dosya paylaşımınızın adı.
mydirectorypath İsteğe bağlı. Üst dizinin yolu.
myfile Dosyanın adı.

Yol adlandırma kısıtlamaları hakkında bilgi için bkz . Ad ve başvuru paylaşımları, dizinler, dosyalar ve meta veriler.

URI parametreleri

İstek URI'sinde aşağıdaki ek parametreler belirtilebilir.

Parametre Açıklama
timeout İsteğe bağlı. timeout parametresi saniye cinsinden ifade edilir. Daha fazla bilgi için bkz. Dosya 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 isteklerini 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 isteklerini 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 veya x-ms-range Range veya x-ms-range gereklidir.

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.

Güncelleştirme işlemi için aralığın boyutu en fazla 4 MiB olabilir. Net bir işlem için aralık, dosyanın tam boyutunun değerine kadar olabilir.

Dosya hizmeti ve x-ms-range üst bilgileri için Range yalnızca tek bir bayt aralığı kabul eder ve bayt aralığı şu biçimde belirtilmelidir: bytes=startByte-endByte.

hem x-ms-range hem de Range belirtilirse, hizmet değerini x-ms-rangekullanır. Daha fazla bilgi için bkz. Dosya hizmeti işlemleri için aralık üst bilgisini belirtme.
Content-Length Gereklidir. İstek gövdesinde iletilen bayt sayısını belirtir. x-ms-write Üst bilgi olarak ayarlandığındaclear, bu üst bilginin değeri olarak 0ayarlanmalıdır.
Content-MD5 İsteğe bağlı. İçeriğin MD5 karması. Bu karma, aktarım sırasında verilerin bütünlüğünü doğrulamak için kullanılır. Üst bilgi belirtildiğindeContent-MD5, Azure Dosyalar gelen içeriğin karması gönderilen üst bilgi değeriyle karşılaştırılır. İki karma eşleşmezse işlem 400 (Hatalı İstek) hata koduyla başarısız olur.

Content-MD5 Üst bilgi x-ms-write olarak ayarlandığında clearüst bilgi kullanılamaz. İstekte yer alıyorsa, Dosya hizmeti 400 (Hatalı İstek) durum kodunu döndürür.
x-ms-write: { update ¦ clear } Gereklidir. Aşağıdaki seçeneklerden birini belirtmeniz gerekir:
  • update: İstek gövdesi tarafından belirtilen baytları belirtilen aralığa yazar. Range Güncelleştirmeyi gerçekleştirmek için ve Content-Length üst bilgileri eşleşmelidir.
  • clear: Belirtilen aralığı temizler ve bu aralık için depolama alanında kullanılan alanı serbest bırakır. Aralığı temizlemek için üst bilgiyi olarak ayarlayın Content-Length ve üst bilgiyi 0temizlenip temizlenecek Range aralığın en büyük dosya boyutuna kadar olduğunu belirten bir değere ayarlayın.
x-ms-lease-id: <ID> Dosyanın etkin bir kirası varsa gereklidir. Sürüm 2019-02-02 ve üzeri için kullanılabilir.
x-ms-client-request-id İsteğe bağlı. Günlüğe kaydetme yapılandırıldığında günlüklere kaydedilen 1 kibibaytlık (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 Dosyalar.
x-ms-file-last-write-time: { now ¦ preserve } İsteğe bağlı. Sürüm 2021-06-08 ve üzeri. Aşağıdaki seçeneklerden birini belirtebilirsiniz:
  • now: Varsayılan değer. son yazma zamanı zaman damgasını isteğin zamanına Güncelleştirmeler.
  • preserve: Mevcut son yazma zaman damgasını değişmeden tutar.
x-ms-file-request-intent Üst bilgi bir OAuth belirteci belirtiyorsa Authorization gereklidir. Kabul edilebilir değer: backup. Bu üst bilgi, üst bilgi kullanılarak Authorization yetkilendirilen Microsoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/action kimliğe atanan RBAC ilkesine eklenmişse veya Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action izni verilmesi gerektiğini belirtir. Sürüm 2022-11-02 ve üzeri için kullanılabilir.
x-ms-allow-trailing-dot: { <Boolean> } İsteğe bağlı. Sürüm 2022-11-02 ve üzeri. Boole değeri, istek URL'sinde sondaki bir noktanın kırpılıp kırpılmaması gerektiğini belirtir. Daha fazla bilgi için bkz . Paylaşımları, dizinleri, dosyaları ve meta verileri adlandırma ve buna başvurma.

İstek gövdesi

Karşıya yüklenecek aralığı temsil eden veriler.

Örnek istek: Bayt aralığını güncelleştirme

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  

Örnek istek: Bayt aralığını temizleme

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=  

Yanıt

Yanıt bir HTTP durum kodu ve yanıt üst bilgileri kümesi 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.

Yanıt üst bilgisi Açıklama
ETag ETag, dosyanın sürümünü temsil eden bir değer içerir. Değer tırnak içine alınır.
Last-Modified Dizinin en son değiştirildiği tarihi ve saati döndürür. Tarih biçimi RFC 1123'e göredir. Daha fazla bilgi için bkz. Üst bilgilerde tarih/saat değerlerini temsil edin. Paylaşımı veya özelliklerini veya meta verilerini değiştiren tüm işlemler son değiştirme zamanını güncelleştirir. Dosyalardaki işlemler paylaşımın son değiştirme zamanını etkilemez.
Content-MD5 İstemcinin ileti içerik bütünlüğünü denetleyebilmesi için bu üst bilgi döndürülür. Bu üst bilginin değeri Dosya hizmeti tarafından hesaplanır. İstek üst bilgilerinde belirtilen değerle aynı olması gerekmez.
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 Dosya hizmeti sürümünü gösterir.
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 2017-04-17 ve üzeri. İsteğin içeriği belirtilen algoritma kullanılarak başarıyla şifrelenirse bu üst bilginin değeri olarak ayarlanır true . Aksi takdirde, değer olarak falseayarlanır.
x-ms-client-request-id Bu üst bilgi, istekler ve karşılık gelen yanıtlarla ilgili sorunları gidermek için kullanılabilir. Bu üst bilginin değeri, istekte mevcutsa 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. x-ms-client-request-id Üst bilgi istekte yoksa yanıtta mevcut değildir.
x-ms-file-last-write-time Sürüm 2021-06-08 ve üzeri. Iso 8601 biçiminde dosyanın son yazma zamanı. Örnek: 2017-05-10T17:52:33.9551861Z.

Yanıt gövdesi

Yok.

Örnek yanıt

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  

Yetkilendirme

Bu işlemi yalnızca hesap sahibi çağırabilir.

Açıklamalar

İşlem bir Put Range dosyaya bir bayt aralığı yazar. Bu işlem yalnızca var olan bir dosyada çağrılabilir. Yeni dosya oluşturmak için çağrılamıyor. Şu anda mevcut olmayan bir dosya adıyla çağrılması Put Range 404 (Bulunamadı) durum kodunu döndürür.

Yeni bir dosya oluşturmak için Dosya Oluştur'u çağırarak. Bir dosyanın boyutu en fazla 4 TiB olabilir.

İşlemin Put Range tamamlanması için MiB başına 10 dakika izin verilir. İşlem, MiB başına ortalama 10 dakikadan uzun sürüyorsa zaman aşımına uysa.

Dosya etkin bir kiraya sahipse, istemcinin aralık yazmak için istekte geçerli bir kira kimliği belirtmesi gerekir.

Aralık güncelleştirme işlemleri

seçeneğiyle çağırmak Put RangeUpdate , belirtilen dosyada yerinde yazma işlemi gerçekleştirir. Belirtilen aralıktaki tüm içeriğin üzerine güncelleştirmeyle birlikte yazılır. Güncelleştirme işlemi için ile gönderilen Put Range her aralığın boyutu en fazla 4 MiB olabilir. 4 MiB'tan büyük bir aralığı karşıya yüklemeye çalışırsanız, hizmet 413 (İstek Varlığı Çok Büyük) durum kodunu döndürür.

Aralık temizleme işlemleri

seçeneğiyle çağrılması Put RangeClear , belirtilen aralık 512 bayt hizalı olduğu sürece depolama alanı serbest bırakır. Temizlenen aralıklar artık dosyanın bir parçası olarak izlenmiyor ve Liste Aralığı yanıtında döndürülmüyor. Belirtilen aralık 512 bayt hizalı değilse, işlem 512 bayt hizalanmamış aralığın başına veya sonuna sıfırlar yazar ve 512 bayt hizalı olan aralığın kalan kısmını serbest bırakın.

Temizlenmemiş aralıklar Liste Aralıkları yanıtında döndürülür. Bir örnek için, aşağıdaki "Örnek hizalanmamış açık aralık" bölümüne bakın.

Dosya kiralama
Sonsuz bir süre boyunca diğer yazma işlemlerine karşı dosyaya özel yazma kilidi almak için Kira Dosyası'nı çağırabilirsiniz.

SMB istemci bayt aralığı kilitleri

SMB protokolü, bayt aralığı kilitlerinin dosyanın bölgelerine okuma ve yazma erişimini yönetmesine olanak tanır. Bu, Put Range bir SMB istemcisinin kullanılarak x-ms-rangeişlem tarafından Put Range belirtilen aralıkla çakışan bir kilidi olduğunda başarısız olduğu anlamına gelir. Daha fazla bilgi için bkz. Dosya kilitlerini yönetme.

SMB istemci dizini değişiklik bildirimleri

SMB protokolü, uygulamaların dosya sisteminde değişiklik olduğunda algılamasını sağlayan FindFirstChangeNotification API işlevini destekler. Bir dosya veya dizinin ne zaman eklendiğini, değiştirildiğini veya silindiğini ve dosyanın boyutu, öznitelikleri veya güvenlik tanımlayıcılarının ne zaman değiştiğini algılayabilir. Bu API'yi kullanan SMB istemcileri, Azure Dosyalar REST API aracılığıyla bir dosya veya dizin değişikliği gerçekleştiğinde bildirim almaz. Ancak, diğer SMB istemcilerinin neden olduğu değişiklikler bildirimleri yayılır.

Örnek hizalanmamış açık aralık

Dosya Oluştur ile bir dosya oluşturulduğunu ve tek bir aralığın ile Put Rangeyazıldığını varsayalım:

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  

Dosyada Liste Aralıkları işlemi gerçekleştirmek aşağıdaki yanıt gövdesini döndürür:

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

Şimdi hizalanmamış bir açık aralık bayt aralığı işleminin gerçekleştirildiğini varsayalım:

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=  

Dosyadaki sonraki Liste Aralıkları işlemi aşağıdaki yanıt gövdesini döndürür:

<?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>  

Sıfırların 768-1024 ve 2048-2304 arası hizalanmamış alana yazıldığını unutmayın.

Put Range bir paylaşımın salt okunur kopyası olan paylaşım anlık görüntüsünde desteklenmez. Paylaşım anlık görüntüsünde bu işlemi gerçekleştirme girişimi 400 (InvalidQueryParameterValue) ile başarısız oluyor.

Ayrıca bkz.