Dela via


Placera intervall

Åtgärden Put Range skriver ett intervall med byte till en fil. Den här åtgärden stöds i version 2025-05-05 och senare för filresurser med NFS-protokollet aktiverat.

Protokolltillgänglighet

Aktiverat filresursprotokoll Tillgänglig
SMB Ja
NFS Ja

Begäran

Den Put Range begäran skapas på följande sätt. Vi rekommenderar att du använder HTTPS.

Metod Begärande-URI HTTP-version
STÄLLA https://myaccount.file.core.windows.net/myshare/mydirectorypath/myfile?comp=range HTTP/1.1

Ersätt sökvägskomponenterna som visas i begärande-URI:n med dina egna enligt följande:

Sökvägskomponent Beskrivning
myaccount Namnet på ditt lagringskonto.
myshare Namnet på filresursen.
mydirectorypath Valfri. Sökvägen till den överordnade katalogen.
myfile Namnet på filen.

Information om namngivningsbegränsningar för sökvägar finns i Namn och referensresurser, kataloger, filer och metadata.

URI-parametrar

Följande ytterligare parametrar kan anges på begärande-URI:n.

Parameter Beskrivning
timeout Valfri. Parametern timeout uttrycks i sekunder. Mer information finns i Ange tidsgränser för filtjänståtgärder.

Begärandehuvuden

De obligatoriska och valfria begäranderubrikerna beskrivs i följande tabeller:

Vanliga begärandehuvuden

Begärandehuvud Beskrivning
Authorization Krävs. Anger auktoriseringsschema, kontonamn och signatur. Mer information finns i Auktorisera begäranden till Azure Storage.
Date eller x-ms-date Krävs. Anger UTC (Coordinated Universal Time) för begäran. Mer information finns i Auktorisera begäranden till Azure Storage.
x-ms-version Krävs för alla auktoriserade begäranden. Anger vilken version av åtgärden som ska användas för den här begäran. Den här åtgärden stöds i version 2025-05-05 och senare för filresurser med NFS-protokollet aktiverat.

Mer information finns i Versionshantering för Azure Storage-tjänsterna.
Range eller x-ms-range Antingen Range eller x-ms-range krävs.

Anger det intervall med byte som ska skrivas. Både början och slutet av intervallet måste anges. Det här huvudet definieras av HTTP/1.1-protokollspecifikationen.

För en uppdateringsåtgärd kan intervallet vara upp till 4 MiB i storlek. För en tydlig åtgärd kan intervallet vara upp till värdet för filens fulla storlek.

Filtjänsten accepterar endast ett enda byteintervall för Range- och x-ms-range-huvudena, och byteintervallet måste anges i följande format: bytes=startByte-endByte.

Om både Range och x-ms-range anges använder tjänsten värdet för x-ms-range. Mer information finns i Ange intervallrubriken för Filtjänståtgärder.
Content-Length Krävs. Anger antalet byte som överförs i begärandetexten. När x-ms-write-huvudet är inställt på clearmåste värdet för det här huvudet anges till 0.
Content-MD5 Valfri. En MD5-hash för innehållet. Denna hash används för att verifiera dataintegriteten under transporten. När Content-MD5-huvudet har angetts jämför Azure Files hashen för innehållet som har anlänt med det rubrikvärde som skickades. Om de två hashvärdena inte matchar misslyckas åtgärden med felkoden 400 (felaktig begäran).

Content-MD5-huvudet tillåts inte när x-ms-write-huvudet är inställt på clear. Om den ingår i begäran returnerar filtjänsten statuskod 400 (felaktig begäran).
x-ms-write: { update ¦ clear } Krävs. Du måste ange något av följande alternativ:
  • update: Skriver de byte som anges av begärandetexten till det angivna intervallet. Rubrikerna Range och Content-Length måste matcha för att utföra uppdateringen.
  • clear: Rensar det angivna intervallet och frigör det utrymme som används i lagringen för det intervallet. Om du vill rensa ett intervall anger du Content-Length-huvudet till 0och anger Range-huvudet till ett värde som anger intervallet som ska rensas, upp till maximal filstorlek.
x-ms-lease-id:<ID> Krävs om filen har ett aktivt lån. Tillgänglig för version 2019-02-02 och senare.

Det här huvudet ignoreras om filen finns på en filresurs med NFS-protokollet aktiverat, vilket inte stöder fillån.
x-ms-client-request-id Valfri. Tillhandahåller ett klientgenererat, täckande värde med en kibibytesteckengräns (KiB) som registreras i loggarna när loggningen konfigureras. Vi rekommenderar starkt att du använder det här huvudet för att korrelera aktiviteter på klientsidan med begäranden som servern tar emot. Mer information finns i Övervaka Azure Files-.
x-ms-file-last-write-time: { now ¦ preserve } Valfri. Version 2021-06-08 och senare. Du kan ange något av följande alternativ:
  • now: Standardvärde. Uppdaterar tidsstämpeln för senaste skrivningstid till tidpunkten för begäran.
  • preserve: Håller den befintliga senaste skrivtidsstämpeln oförändrad.
x-ms-file-request-intent Krävs om Authorization rubrik anger en OAuth-token. Acceptabelt värde är backup. Det här huvudet anger att Microsoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/action eller Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action ska beviljas om de ingår i RBAC-principen som tilldelats den identitet som är auktoriserad med hjälp av Authorization-huvudet. Tillgänglig för version 2022-11-02 och senare.
x-ms-allow-trailing-dot: { <Boolean> } Valfri. Version 2022-11-02 och senare. Det booleska värdet anger om en avslutande punkt som finns i begärande-URL:en ska trimmas eller inte.

Det här huvudet ignoreras om målet finns på en filresurs med NFS-protokollet aktiverat, vilket stöder avslutande punkt som standard.

Mer information finns i Namngivning och referens av resurser, kataloger, filer och metadata.

Endast SMB-begärandehuvuden

Ingen.

Endast NFS-begärandehuvuden

Ingen.

Begärandetext

Data som representerar det intervall som ska laddas upp.

Exempelbegäran: Uppdatera byteintervall

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  

Exempelbegäran: Rensa byteintervall

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=  

Svar

Svaret innehåller en HTTP-statuskod och en uppsättning svarshuvuden.

Statuskod

En lyckad åtgärd returnerar statuskoden 201 (skapad). Mer information om statuskoder finns i Status och felkoder.

Svarshuvuden

Svaret för den här åtgärden innehåller rubrikerna i följande tabeller. Svaret kan också innehålla ytterligare standard-HTTP-huvuden. Alla standardhuvuden överensstämmer med HTTP/1.1-protokollspecifikationen.

Vanliga svarshuvuden

Svarsrubrik Beskrivning
ETag ETag innehåller ett värde som representerar filens version. Värdet omges av citattecken.
Last-Modified Returnerar datum och tid då katalogen senast ändrades. Datumformatet följer RFC 1123. Mer information finns i Representera datum/tid-värden i rubriker. Alla åtgärder som ändrar resursen eller dess egenskaper eller metadata uppdaterar den senaste ändrade tiden. Åtgärder på filer påverkar inte resursens senaste ändringstid.
Content-MD5 Det här huvudet returneras så att klienten kan söka efter meddelandets innehållsintegritet. Värdet för det här huvudet beräknas av filtjänsten. Det är inte nödvändigtvis samma som värdet som anges i begäranderubrikerna.
x-ms-request-id Identifierar den begäran som gjordes unikt och kan användas för att felsöka begäran. Mer information finns i Felsöka API-åtgärder.
x-ms-version Anger den filtjänstversion som användes för att köra begäran.
Date Ett UTC-datum/tid-värde som genereras av tjänsten, vilket anger den tid då svaret initierades.
x-ms-request-server-encrypted: { true ¦ false } Version 2017-04-17 och senare. Värdet för det här huvudet är inställt på true om innehållet i begäran har krypterats med hjälp av den angivna algoritmen. Annars är värdet inställt på false.
x-ms-client-request-id Det här huvudet kan användas för att felsöka begäranden och motsvarande svar. Värdet för det här huvudet är lika med värdet för x-ms-client-request-id-huvudet om det finns i begäran och värdet inte innehåller fler än 1 024 synliga ASCII-tecken. Om x-ms-client-request-id-huvudet inte finns i begäran finns det inte i svaret.
x-ms-file-last-write-time Version 2021-06-08 och senare. Den senaste skrivtiden för filen i FORMATET ISO 8601. Exempel: 2017-05-10T17:52:33.9551861Z.

Endast SMB-svarshuvuden

Ingen.

Endast NFS-svarshuvuden

Ingen.

Svarstext

Ingen.

Exempelsvar

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  

Tillstånd

Endast kontoägaren kan anropa den här åtgärden.

Anmärkningar

Åtgärden Put Range skriver ett intervall med byte till en fil. Den här åtgärden kan bara anropas på en befintlig fil. Det går inte att anropa för att skapa en ny fil. Anropar Put Range med ett filnamn som för närvarande inte finns returnerar statuskod 404 (hittades inte).

Om du vill skapa en ny fil anropar du Skapa fil. En fil kan vara upp till 4 TiB i storlek.

En Put Range åtgärd tillåts 10 minuter per MiB att slutföra. Om åtgärden tar längre tid än 10 minuter per MiB i genomsnitt överskrider den tidsgränsen.

Om filen har ett aktivt lån måste klienten ange ett giltigt låne-ID för begäran om att skriva ett intervall.

Uppdateringsåtgärder för intervall

När du anropar Put Range med alternativet Update utförs en skrivning på plats på den angivna filen. Allt innehåll i det angivna intervallet skrivs över med uppdateringen. Varje intervall som skickas med Put Range för en uppdateringsåtgärd kan vara upp till 4 MiB i storlek. Om du försöker ladda upp ett intervall som är större än 4 MiB returnerar tjänsten statuskod 413 (Begärandeentiteten är för stor).

Rensa intervallåtgärder

Om du anropar Put Range med alternativet Clear frigörs utrymmet i lagringen så länge det angivna intervallet är 512 byte justerat. Intervall som har rensats spåras inte längre som en del av filen och returneras inte i listintervallet svar. Om det angivna intervallet inte är 512 byte justerat skriver åtgärden nollor till början eller slutet av intervallet som inte är 512 byte justerat och frigör resten av intervallet inuti som är 512 byte justerat.

Alla intervall som inte har rensats returneras i listintervall svar. Ett exempel finns i avsnittet "Sample unaligned clear range" som följer.

Fillån

Du kan anropa Lease File för att få ett exklusivt skrivlås till filen mot andra skrivningar under en oändlig varaktighet.

SMB-klientbyteintervall låser

SMB-protokollet tillåter byteintervalllås för att hantera läs- och skrivåtkomst till regioner i en fil. Det innebär att Put Range på en fil som finns på en filresurs med SMB-protokollet aktiverat misslyckas om en SMB-klient har ett lås som överlappar det intervall som anges av den Put Range åtgärden med hjälp av x-ms-range. Mer information finns i Hantera fillås.

NFS-klientens byteintervall låser

POSIX-byteintervalllås för NFS-protokollet är rådgivande, därför misslyckas inte Put Range på en fil som finns på en filresurs med NFS-protokoll aktiverat även om det finns ett byteintervalllås som står i konflikt med en NFS-klient.

SMB-klientkatalogen ändrar meddelanden

SMB-protokollet stöder funktionen FindFirstChangeNotification API som gör att program kan identifiera när ändringar sker i filsystemet. Den kan identifiera när en fil eller katalog läggs till, ändras eller tas bort och när en fils storlek, attribut eller säkerhetsbeskrivningar ändras. SMB-klienter som använder det här API:et får inte meddelanden när en fil- eller katalogändring sker via AZURE Files REST API. Ändringar som orsakas av andra SMB-klienter sprider dock meddelanden.

Exempel på icke-justerat

Anta att en fil skapas med Skapa fil och att ett enda intervall skrivs med Put Range, enligt följande:

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  

Om du utför en listintervall åtgärden på filen returneras följande svarstext:

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

Anta nu att en icke-justerad byteintervallåtgärd utförs:

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=  

En efterföljande listintervall på filen returnerar följande svarstext:

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

Observera att nollor har skrivits till det ojusterade utrymmet från 768-1024 och 2048-2304.

Put Range stöds inte i en resursögonblicksbild, vilket är en skrivskyddad kopia av en resurs. Ett försök att utföra den här åtgärden på en resursögonblicksbild misslyckas med 400 (InvalidQueryParameterValue).

Se även

åtgärder på