Aracılığıyla paylaş


Aralığı Koy

Put Range işlemi bir dosyaya bir bayt aralığı yazar. Bu işlem, NFS protokolü etkinleştirilmiş Dosya Paylaşımları için 2025-05-05 ve sonraki sürümlerde desteklenir.

Protokol kullanılabilirliği

Etkin dosya paylaşımı protokolü Mevcut
SMB Evet
NFS Evet

İstek

Put Range isteği aşağıdaki gibi oluşturulur. HTTPS kullanmanızı öneririz.

Yöntem İstek URI'si HTTP sürümü
KOYMAK 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 Opsiyonel. Ü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 Opsiyonel. 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 tablolarda açıklanmıştır:

Ortak istek üst bilgileri

İstek üst bilgisi Açıklama
Authorization Gerekli. Yetkilendirme düzenini, hesap adını ve imzayı belirtir. Daha fazla bilgi için bkz. azure depolama istekleri yetkilendirme.
Date veya x-ms-date Gerekli. İstek için Eşgüdümlü Evrensel Saati (UTC) belirtir. Daha fazla bilgi için bkz. azure depolama 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. Bu işlem, NFS protokolü etkinleştirilmiş Dosya Paylaşımları için 2025-05-05 ve sonraki sürümlerde desteklenir.

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 4 MiB'a kadar olabilir. Net bir işlem için aralık, dosyanın tam boyutunun değerine kadar olabilir.

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

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

x-ms-write üst bilgisi clearolarak ayarlandığında Content-MD5 üst bilgisine izin verilmez. İstekte yer alıyorsa, Dosya hizmeti 400 (Hatalı İstek) durum kodunu döndürür.
x-ms-write: { update ¦ clear } Gerekli. Aşağıdaki seçeneklerden birini belirtmelisiniz:
  • update: İstek gövdesi tarafından belirtilen baytları belirtilen aralığa yazar. Güncelleştirmeyi gerçekleştirmek için Range 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, Content-Length üst bilgisini 0olarak ayarlayın ve Range üst bilgisini temizlenip temizlenecek aralığın en büyük dosya boyutuna kadar olduğunu belirten bir değer olarak ayarlayın.
x-ms-lease-id:<ID> Dosyanın etkin bir kirası varsa gereklidir. 2019-02-02 ve sonraki sürümlerde kullanılabilir.

Dosya, dosya kiralamalarını desteklemeyen NFS protokolü etkinleştirilmiş bir Dosya Paylaşımında bulunuyorsa bu üst bilgi yoksayılır.
x-ms-client-request-id Opsiyonel. 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. azure dosyaları izleme.
x-ms-file-last-write-time: { now ¦ preserve } Opsiyonel. 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ştirir.
  • preserve: Mevcut son yazma zaman damgasını değişmeden tutar.
x-ms-file-request-intent Authorization üst bilgisi bir OAuth belirteci belirtiyorsa gereklidir. Kabul edilebilir değer backup. Bu üst bilgi, Microsoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/action veya Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action, Authorization üst bilgisi kullanılarak yetkilendirilmiş kimliğe atanan RBAC ilkesine eklenmişse verilmesi gerektiğini belirtir. Sürüm 2022-11-02 ve üzeri için kullanılabilir.
x-ms-allow-trailing-dot: { <Boolean> } Opsiyonel. Sürüm 2022-11-02 ve üzeri. Boole değeri, istek URL'sinde bulunan sondaki bir noktanın kırpılıp kırpılmaması gerektiğini belirtir.

Hedef, varsayılan olarak sondaki noktayı destekleyen NFS protokolü etkinleştirilmiş bir Dosya Paylaşımında bulunuyorsa bu üst bilgi yoksayılır.

Daha fazla bilgi için bkz. Paylaşımları, dizinleri, dosyaları ve meta verileriadlandırma ve başvurma.

Yalnızca SMB istek üst bilgileri

Hiç kimse.

Yalnızca NFS istek üst bilgileri

Hiç kimse.

İ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ı temizle

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 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 tablolardaki ü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.

Ortak yanıt üst bilgileri

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 son değiştirildiği tarih ve saati döndürür. Tarih biçimi RFC 1123'e uyar. 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ı olmayabilir.
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şlem sorunlarını 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 true olarak ayarlanır. Aksi takdirde, değeri falseolarak ayarlanır.
x-ms-client-request-id Bu üst bilgi, isteklerde ve ilgili yanıtlarda sorun 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 x-ms-client-request-id üst bilgisinin değerine eşittir. İstekte x-ms-client-request-id üst bilgisi yoksa yanıtta bulunmaz.
x-ms-file-last-write-time Sürüm 2021-06-08 ve üzeri. Dosyanın iso 8601 biçimindeki son yazma zamanı. Örnek: 2017-05-10T17:52:33.9551861Z.

Yalnızca SMB yanıt üst bilgileri

Hiç kimse.

Yalnızca NFS yanıt üst bilgileri

Hiç kimse.

Yanıt gövdesi

Hiç kimse.

Ö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  

İzin

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

Açıklamalar

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

Yeni bir dosya oluşturmak için Dosya Oluşturöğesini arayın. Bir dosyanın boyutu en fazla 4 TiB olabilir.

Bir Put Range işleminin 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.

Dosyanın etkin bir kirası varsa, istemcinin aralık yazmak için istekte geçerli bir kira kimliği belirtmesi gerekir.

Aralığı güncelleştirme işlemleri

Update seçeneğiyle Put Range çağrılması, 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 Put Range ile gönderilen her aralığın boyutu 4 MiB'a kadar olabilir. 4 MiB'den 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ığı temizleme işlemleri

Clear seçeneğiyle Put Range çağrılması, belirtilen aralık 512 bayt hizalı olduğu sürece depolamadaki 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 hizalanmamışsa, işlem 512 bayt hizalanmamış aralığın başına veya sonuna sıfır yazar ve 512 bayt hizalanmış aralığın geri kalanını serbest bırakın.

Temizlenmemiş tüm 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

Kira Dosyası çağırarak, sonsuz bir süre boyunca diğer yazma işlemlerine karşı dosyaya özel bir yazma kilidi alabilirsiniz.

SMB istemci bayt aralığı kilitler

SMB protokolü bayt aralığı kilitlerinin dosyanın bölgelerine okuma ve yazma erişimini yönetmesine olanak tanır. Bu, bir SMB istemcisinin x-ms-rangekullanan Put Range işlemi tarafından belirtilen aralıkla çakışan bir kilidi varsa, SMB protokolü etkinleştirilmiş bir Dosya Paylaşımı'nda bulunan bir dosyadaki Put Range başarısız olduğu anlamına gelir. Daha fazla bilgi için bkz. dosya kilitlerini yönetme .

NFS istemci bayt aralığı kilitleri

NFS protokolü POSIX bayt aralığı kilitleri doğası gereği danışmanlıktır, bu nedenle NFS protokolü etkin bir Dosya Paylaşımı'nda bulunan bir dosyadaki Put Range, NFS istemcisi tarafından tutulan çakışan bayt aralığı kilidi olsa bile başarısız olmaz.

SMB istemci dizini değişiklik bildirimlerini

SMB protokolü, uygulamaların dosya sisteminde ne zaman değişiklik olduğunu algılamasına olanak tanıyan 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'si 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ım.

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

Dosya Oluştur ile bir dosya oluşturulduğunu ve tek bir aralığın Put Rangeile yazı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ında hizalanmamış alana yazıldığını unutmayın.

Put Range, paylaşımın salt okunur bir 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.

Dosyalarda İşlemleri