Lezen in het Engels

Delen via


Bereik plaatsen

De Put Range-bewerking schrijft een bereik van bytes naar een bestand. Deze bewerking wordt ondersteund in versie 2025-05-05 en hoger voor bestandsshares waarvoor het NFS-protocol is ingeschakeld.

Beschikbaarheid van protocol

Protocol voor bestandsshare ingeschakeld Beschikbaar
SMB Ja-
NFS Ja-

Verzoek

De Put Range aanvraag wordt als volgt samengesteld. U wordt aangeraden HTTPS te gebruiken.

Methode Aanvraag-URI HTTP-versie
ZETTEN https://myaccount.file.core.windows.net/myshare/mydirectorypath/myfile?comp=range HTTP/1.1

Vervang de padonderdelen in de aanvraag-URI als volgt door uw eigen padonderdelen:

Padonderdeel Beschrijving
myaccount De naam van uw opslagaccount.
myshare De naam van uw bestandsshare.
mydirectorypath Facultatief. Het pad naar de bovenliggende map.
myfile De naam van het bestand.

Zie Naam- en referentieshares, mappen, bestanden en metagegevensvoor meer informatie over naamgevingsbeperkingen voor paden.

URI-parameters

De volgende aanvullende parameters kunnen worden opgegeven op de aanvraag-URI.

Parameter Beschrijving
timeout Facultatief. De parameter timeout wordt uitgedrukt in seconden. Zie Time-outs instellen voor bestandsservicebewerkingenvoor meer informatie.

Aanvraagheaders

De vereiste en optionele aanvraagheaders worden beschreven in de volgende tabellen:

Algemene aanvraagheaders

Aanvraagheader Beschrijving
Authorization Vereist. Hiermee geeft u het autorisatieschema, de accountnaam en de handtekening op. Zie Aanvragen autoriseren voor Azure Storagevoor meer informatie.
Date of x-ms-date Vereist. Hiermee geeft u de Coordinated Universal Time (UTC) voor de aanvraag. Zie Aanvragen autoriseren voor Azure Storagevoor meer informatie.
x-ms-version Vereist voor alle geautoriseerde aanvragen. Hiermee geeft u de versie van de bewerking die moet worden gebruikt voor deze aanvraag. Deze bewerking wordt ondersteund in versie 2025-05-05 en hoger voor bestandsshares waarvoor het NFS-protocol is ingeschakeld.

Zie Versiebeheer voor de Azure Storage-servicesvoor meer informatie.
Range of x-ms-range Range of x-ms-range is vereist.

Hiermee geeft u het bereik van bytes dat moet worden geschreven. Zowel het begin als het einde van het bereik moet worden opgegeven. Deze header wordt gedefinieerd door de HTTP/1.1-protocolspecificatie.

Voor een updatebewerking kan het bereik maximaal 4 MiB groot zijn. Voor een duidelijke bewerking kan het bereik maximaal de waarde van de volledige grootte van het bestand hebben.

De Bestandsservice accepteert slechts één bytebereik voor de Range- en x-ms-range-headers en het bytebereik moet worden opgegeven in de volgende indeling: bytes=startByte-endByte.

Als zowel Range als x-ms-range zijn opgegeven, gebruikt de service de waarde van x-ms-range. Zie Geef de bereikheader op voor bestandsservicebewerkingenvoor meer informatie.
Content-Length Vereist. Hiermee geeft u het aantal bytes dat wordt verzonden in de aanvraagbody. Wanneer de x-ms-write koptekst is ingesteld op clear, moet de waarde van deze koptekst worden ingesteld op 0.
Content-MD5 Facultatief. Een MD5-hash van de inhoud. Deze hash wordt gebruikt om de integriteit van de gegevens tijdens het transport te controleren. Wanneer de Content-MD5 header is opgegeven, vergelijkt Azure Files de hash van de inhoud die is aangekomen met de headerwaarde die is verzonden. Als de twee hashes niet overeenkomen, mislukt de bewerking met foutcode 400 (Ongeldige aanvraag).

De Content-MD5-header is niet toegestaan wanneer de x-ms-write koptekst is ingesteld op clear. Als deze is opgenomen in de aanvraag, retourneert de bestandsservice statuscode 400 (Ongeldige aanvraag).
x-ms-write: { update ¦ clear } Vereist. U moet een van de volgende opties opgeven:
  • update: hiermee schrijft u de bytes die zijn opgegeven door de aanvraagbody in het opgegeven bereik. De Range- en Content-Length headers moeten overeenkomen om de update uit te voeren.
  • clear: hiermee wordt het opgegeven bereik gewist en wordt de ruimte vrijgemaakt die in de opslag voor dat bereik wordt gebruikt. Als u een bereik wilt wissen, stelt u de Content-Length koptekst in op 0en stelt u de Range-header in op een waarde die aangeeft dat het bereik moet worden gewist, tot een maximale bestandsgrootte.
x-ms-lease-id:<ID> Vereist als het bestand een actieve lease heeft. Beschikbaar voor versie 2019-02-02 en hoger.

Deze header wordt genegeerd als het bestand zich op een bestandsshare bevindt waarvoor het NFS-protocol is ingeschakeld, wat geen ondersteuning biedt voor bestandsleases.
x-ms-client-request-id Facultatief. Biedt een door de client gegenereerde, ondoorzichtige waarde met een tekenlimiet van 1 kibibyte (KiB) die wordt vastgelegd in de logboeken wanneer logboekregistratie is geconfigureerd. We raden u ten zeerste aan deze header te gebruiken om activiteiten aan de clientzijde te correleren met aanvragen die de server ontvangt. Zie Monitor Azure Filesvoor meer informatie.
x-ms-file-last-write-time: { now ¦ preserve } Facultatief. Versie 2021-06-08 en hoger. U kunt een van de volgende opties opgeven:
  • now: standaardwaarde. Hiermee wordt de tijdstempel van de laatste schrijftijd bijgewerkt naar de tijd van de aanvraag.
  • preserve: hiermee blijft de bestaande tijdstempel voor laatste schrijfbewerking ongewijzigd.
x-ms-file-request-intent Vereist als Authorization header een OAuth-token opgeeft. Acceptabele waarde is backup. Deze header geeft aan dat de Microsoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/action of Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action moeten worden verleend als ze zijn opgenomen in het RBAC-beleid dat is toegewezen aan de identiteit die is geautoriseerd met behulp van de Authorization-header. Beschikbaar voor versie 2022-11-02 en hoger.
x-ms-allow-trailing-dot: { <Boolean> } Facultatief. Versie 2022-11-02 en hoger. De Booleaanse waarde geeft aan of een volgpunt aanwezig in de aanvraag-URL moet worden ingekort of niet.

Deze header wordt genegeerd als het doel zich op een bestandsshare bevindt waarvoor het NFS-protocol is ingeschakeld. Dit biedt standaard ondersteuning voor een volgpunt.

Zie Shares, mappen, bestanden en metagegevensvoor meer informatie.

Alleen aanvraagheaders voor SMB

Geen.

Alleen aanvraagheaders voor NFS

Geen.

Aanvraagbody

De gegevens die het bereik vertegenwoordigen dat moet worden geüpload.

Voorbeeldaanvraag: Bytebereik bijwerken

HTTP
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  

Voorbeeldaanvraag: bytebereik wissen

HTTP
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=  

Antwoord

Het antwoord bevat een HTTP-statuscode en een set antwoordheaders.

Statuscode

Een geslaagde bewerking retourneert statuscode 201 (gemaakt). Zie Status en foutcodesvoor meer informatie over statuscodes.

Antwoordheaders

Het antwoord voor deze bewerking bevat de headers in de volgende tabellen. Het antwoord kan ook aanvullende standaard HTTP-headers bevatten. Alle standaardheaders voldoen aan de HTTP/1.1-protocolspecificatie.

Algemene antwoordheaders

Antwoordheader Beschrijving
ETag De ETag bevat een waarde die de versie van het bestand vertegenwoordigt. De waarde staat tussen aanhalingstekens.
Last-Modified Retourneert de datum en tijd waarop de map voor het laatst is gewijzigd. De datumnotatie volgt RFC 1123. Zie Datum-/tijdwaarden weergeven in koptekstenvoor meer informatie. Elke bewerking waarmee de share of de eigenschappen of metagegevens van de share worden gewijzigd, wordt de laatste wijzigingstijd bijgewerkt. Bewerkingen op bestanden hebben geen invloed op de laatste wijzigingstijd van de share.
Content-MD5 Deze header wordt geretourneerd, zodat de client kan controleren op integriteit van berichtinhoud. De waarde van deze header wordt berekend door de Bestandsservice. Dit is niet noodzakelijkerwijs hetzelfde als de waarde die is opgegeven in de aanvraagheaders.
x-ms-request-id Identificeer de aanvraag die is gemaakt en kan worden gebruikt om problemen met de aanvraag op te lossen. Zie Problemen met API-bewerkingen oplossenvoor meer informatie.
x-ms-version Geeft de bestandsserviceversie aan die is gebruikt om de aanvraag uit te voeren.
Date Een UTC-datum/tijdwaarde die wordt gegenereerd door de service, wat de tijd aangeeft waarop het antwoord is gestart.
x-ms-request-server-encrypted: { true ¦ false } Versie 2017-04-17 en hoger. De waarde van deze header is ingesteld op true als de inhoud van de aanvraag is versleuteld met behulp van het opgegeven algoritme. Anders is de waarde ingesteld op false.
x-ms-client-request-id Deze header kan worden gebruikt om problemen met aanvragen en bijbehorende antwoorden op te lossen. De waarde van deze header is gelijk aan de waarde van de x-ms-client-request-id header als deze aanwezig is in de aanvraag en de waarde niet meer dan 1024 zichtbare ASCII-tekens bevat. Als de x-ms-client-request-id header niet aanwezig is in de aanvraag, is deze niet aanwezig in het antwoord.
x-ms-file-last-write-time Versie 2021-06-08 en hoger. De laatste schrijftijd voor het bestand, in de ISO 8601-indeling. Voorbeeld: 2017-05-10T17:52:33.9551861Z.

Alleen SMB-antwoordheaders

Geen.

Alleen antwoordheaders van NFS

Geen.

Hoofdtekst van antwoord

Geen.

Voorbeeldantwoord

HTTP
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  

Machtiging

Alleen de accounteigenaar kan deze bewerking aanroepen.

Opmerkingen

De Put Range-bewerking schrijft een bereik van bytes naar een bestand. Deze bewerking kan alleen worden aangeroepen voor een bestaand bestand. Het kan niet worden aangeroepen om een nieuw bestand te maken. Als u Put Range aanroept met een bestandsnaam die momenteel niet bestaat, wordt statuscode 404 (Niet gevonden) geretourneerd.

Als u een nieuw bestand wilt maken, roept u Bestand makenaan. Een bestand kan maximaal 4 TiB groot zijn.

Een Put Range bewerking is toegestaan 10 minuten per MiB te voltooien. Als de bewerking gemiddeld langer duurt dan 10 minuten per MiB, treedt er een time-out op.

Als het bestand een actieve lease heeft, moet de client een geldige lease-id opgeven voor de aanvraag om een bereik te schrijven.

updatebewerkingen voor bereik

Als u Put Range aanroept met de optie Update voert u een in-place schrijfbewerking uit op het opgegeven bestand. Alle inhoud in het opgegeven bereik wordt overschreven met de update. Elk bereik dat wordt verzonden met Put Range voor een updatebewerking kan maximaal 4 MiB groot zijn. Als u probeert een bereik te uploaden dat groter is dan 4 MiB, retourneert de service statuscode 413 (Aanvraagentiteit te groot).

bereik duidelijke bewerkingen

Als u Put Range aanroept met de optie Clear, wordt de ruimte in de opslag vrijgegeven zolang het opgegeven bereik 512-byte is uitgelijnd. Bereiken die zijn gewist, worden niet meer bijgehouden als onderdeel van het bestand en worden niet geretourneerd in het lijstbereik antwoord. Als het opgegeven bereik niet is uitgelijnd op 512-bytes, schrijft de bewerking nullen naar het begin of einde van het bereik dat niet is uitgelijnd met 512 byte en wordt de rest van het bereik binnen 512-byte uitgelijnd.

Alle bereiken die niet zijn gewist, worden geretourneerd in de lijstbereiken antwoord. Zie voor een voorbeeld de sectie 'Niet-uitgelijnd duidelijk bereik' die volgt.

bestandslease

U kunt leasebestand aanroepen om een exclusieve schrijfvergrendeling voor het bestand te verkrijgen tegen andere schrijfbewerkingen voor een oneindige duur.

SMB-client bytebereikvergrendelingen

Met het SMB-protocol kunnen bytebereikvergrendelingen lees- en schrijftoegang tot regio's van een bestand worden beheerd. Dit betekent dat Put Range op een bestand op een bestandsshare met ingeschakeld SMB-protocol mislukt als een SMB-client een vergrendeling heeft die overlapt met het bereik dat is opgegeven door de Put Range-bewerking met behulp van x-ms-range. Zie Bestandsvergrendelingen beherenvoor meer informatie.

NFS-client bytebereikvergrendelingen

De POSIX-bytebereikvergrendelingen van het NFS-protocol zijn van aard. De Put Range op een bestand op een bestandsshare waarvoor het NFS-protocol is ingeschakeld, mislukt niet, zelfs niet als er een conflicterende bytebereikvergrendeling is die wordt vastgehouden door een NFS-client.

meldingen voor het wijzigen van SMB-clientmaps

Het SMB-protocol ondersteunt de FindFirstChangeNotification API-functie waarmee toepassingen kunnen detecteren wanneer er wijzigingen optreden in het bestandssysteem. Het kan detecteren wanneer een bestand of map wordt toegevoegd, gewijzigd of verwijderd en wanneer de grootte, kenmerken of beveiligingsdescriptors van een bestand worden gewijzigd. SMB-clients die deze API gebruiken, ontvangen geen meldingen wanneer een bestands- of mapwijziging plaatsvindt via de Azure Files REST API. Wijzigingen die worden veroorzaakt door andere SMB-clients, worden echter meldingen doorgegeven.

voorbeeld van niet-uitgelijnd bereik

Stel dat een bestand wordt gemaakt met Bestand maken en één bereik wordt geschreven met Put Range, als volgt:

HTTP
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  

Het uitvoeren van een lijstbereiken bewerking op het bestand retourneert de volgende antwoordtekst:

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

Stel nu dat een niet-uitgelijnde bytebereikbewerking wordt uitgevoerd:

HTTP
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=  

Een volgende lijstbereiken bewerking op het bestand retourneert de volgende antwoordtekst:

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

Houd er rekening mee dat nullen zijn weggeschreven naar de niet-uitgelijnde ruimte van 768-1024 en 2048-2304.

Put Range wordt niet ondersteund op een momentopname van een share. Dit is een alleen-lezen kopie van een share. Een poging om deze bewerking uit te voeren op een momentopname van een share mislukt met 400 (InvalidQueryParameterValue).

Zie ook

bewerkingen voor bestanden