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 |
![]() |
NFS |
![]() |
İ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-range değ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 clear olarak ayarlandığında, bu üst bilginin değeri 0 olarak 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 clear olarak 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:
|
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:
|
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
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-range
kullanan 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 Range
ile 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