Blok keren

Put BlockMet deze bewerking wordt een nieuw blok gemaakt dat moet worden doorgevoerd als onderdeel van een blob.

Aanvraag

De Put Block aanvraag kan als volgt worden samengesteld. HTTPS wordt aanbevolen. Vervang MyAccount door de naam van uw opslag account:

URI voor de methode PUT-aanvraag HTTP-versie
https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=block&blockid=id HTTP/1.1

URI voor geëmuleerde opslag service

Bij het uitvoeren van een aanvraag voor de geëmuleerde opslag service, geeft u de hostnaam van de emulator en Blob service poort op als 127.0.0.1:10000 , gevolgd door de naam van het geëmuleerde opslag account:

URI voor de methode PUT-aanvraag HTTP-versie
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob?comp=block&blockid=id HTTP/1.1

Zie de Azure Storage-emulator gebruiken voor ontwikkeling en testenvoor meer informatie.

URI-parameters

Parameter Beschrijving
blockid Vereist. Een geldige base64-teken reeks waarde waarmee het blok wordt aangeduid. Vóór de code ring moet de teken reeks kleiner zijn dan of gelijk zijn aan 64 bytes.

Voor een bepaalde BLOB moet de lengte van de waarde die is opgegeven voor de blockid para meter, dezelfde grootte hebben voor elk blok.

Houd er rekening mee dat de base64-teken reeks een URL-code ring moet zijn.
timeout Optioneel. De timeout para meter wordt uitgedrukt in seconden. Zie time-outs instellen voor BLOB-service bewerkingenvoor meer informatie.

Aanvraagheaders

In de volgende tabel worden de vereiste en optionele aanvraag headers beschreven.

Aanvraagkoptekst Beschrijving
Authorization Vereist. Hiermee geeft u het autorisatie schema, de account naam en de hand tekening. Zie aanvragen voor Azure Storage autoriseren voor meer informatie.
Date of x-ms-date Vereist. Geef de Coordinated Universal Time (UTC) op voor de aanvraag. Zie aanvragen voor Azure Storage autoriserenvoor meer informatie.
x-ms-version Vereist voor alle geautoriseerde aanvragen. Hiermee geeft u de versie op van de bewerking die moet worden gebruikt voor deze aanvraag. Zie versie beheer voor de Azure Storage servicesvoor meer informatie.
Content-Length Vereist. De lengte van de blok inhoud in bytes. De grootte van het blok moet kleiner zijn dan of gelijk zijn aan de 4000-MiB voor versie 2019-12-12 of hoger. Zie de opmerkingen voor limieten in oudere versies.

Als er geen lengte is opgegeven, mislukt de bewerking met de status code 411 (lengte vereist).
Content-MD5 Optioneel. Een MD5-hash van de blok inhoud. Deze hash wordt gebruikt om de integriteit van het blok tijdens het Trans Port te controleren. Als deze header is opgegeven, vergelijkt de opslag service de hash van de inhoud die met deze header waarde is aangekomen.

Houd er rekening mee dat deze MD5-hash niet wordt opgeslagen met de blob.

Als de twee hashes niet overeenkomen, mislukt de bewerking met fout code 400 (ongeldige aanvraag).
x-ms-content-crc64 Optioneel. Een CRC64-hash van de blok inhoud. Deze hash wordt gebruikt om de integriteit van het blok tijdens het Trans Port te controleren. Als deze header is opgegeven, vergelijkt de opslag service de hash van de inhoud die met deze header waarde is aangekomen.

Houd er rekening mee dat deze CRC64-hash niet wordt opgeslagen met de blob.

Als de twee hashes niet overeenkomen, mislukt de bewerking met fout code 400 (ongeldige aanvraag).

Als de headers content-MD5 en x-MS-content-crc64 aanwezig zijn, mislukt de aanvraag met een 400 (ongeldige aanvraag).

Deze header wordt ondersteund in versie 2019-02-02 of hoger.
x-ms-encryption-scope Optioneel. Hiermee wordt het versleutelings bereik aangegeven dat moet worden gebruikt om de aanvraag inhoud te versleutelen. Deze header wordt ondersteund in versie 2019-02-02 of hoger.
x-ms-lease-id:<ID> Vereist als de BLOB een actieve lease heeft. Als u deze bewerking wilt uitvoeren op een blob met een actieve lease, geeft u de geldige lease-ID voor deze header op.
x-ms-client-request-id Optioneel. Biedt een door de client gegenereerde, ondoorzichtige waarde met een limiet van 1 KiB tekens die wordt vastgelegd in de analyse Logboeken wanneer opslag analyse logboek registratie is ingeschakeld. Het gebruik van deze header wordt ten zeerste aanbevolen voor het correleren van activiteiten aan clientzijde met aanvragen die door de server worden ontvangen. Zie voor meer informatie over Opslaganalyse logboek registratie en logboek registratie van Azure: Logboeken gebruiken om opslag aanvragen bij te houden.

Aanvraag headers (door de klant verschafte versleutelings sleutels)

Vanaf versie 2019-02-02 kunnen de volgende headers worden opgegeven voor de aanvraag om een BLOB te versleutelen met een door de klant opgegeven sleutel. Versleuteling met een door de klant opgegeven sleutel (en de bijbehorende set kopteksten) is optioneel.

Aanvraagheader Beschrijving
x-ms-encryption-key Vereist. De met base64 gecodeerde AES-256-versleutelings sleutel.
x-ms-encryption-key-sha256 Vereist. De met base64 gecodeerde SHA256-hash van de versleutelings sleutel.
x-ms-encryption-algorithm: AES256 Vereist. Hiermee geeft u de algoritme op die moet worden gebruikt voor versleuteling. De waarde van deze header moet zijn AES256 .

Aanvraagbody

De aanvraag tekst bevat de inhoud van het blok.

Voorbeeldaanvraag

Request Syntax:  
PUT https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=block&blockid=AAAAAA%3D%3D HTTP/1.1  
  
Request Headers:  
x-ms-version: 2011-08-18  
x-ms-date: Sun, 25 Sep 2011 14:37:35 GMT  
Authorization: SharedKey myaccount:J4ma1VuFnlJ7yfk/Gu1GxzbfdJloYmBPWlfhZ/xn7GI=  
Content-Length: 1048576  

Antwoord

Het antwoord bevat een HTTP-status code en een set antwoord headers.

Statuscode

Met een geslaagde bewerking wordt de status code 201 (gemaakt) geretourneerd.

Zie status-en fout codesvoor meer informatie over status codes.

Antwoordheaders

Het antwoord voor deze bewerking bevat de volgende headers. Het antwoord kan ook aanvullende standaard-HTTP-headers bevatten. Alle standaard headers voldoen aan de specificatie van het HTTP/1.1-protocol.

Reactie header Beschrijving
Content-MD5 Deze header wordt geretourneerd, zodat de client kan controleren op integriteit van berichten inhoud. De waarde van deze header wordt berekend door de Blob service; het is niet noodzakelijkerwijs hetzelfde als de waarde die is opgegeven in de aanvraag headers. Voor versie 2019-02-02 of hoger wordt deze header alleen geretourneerd wanneer de aanvraag deze header bevat.
x-ms-content-crc64 Voor versie 2019-02-02 of hoger wordt deze header geretourneerd, zodat de client kan controleren op integriteit van berichten inhoud. De waarde van deze header wordt berekend door de Blob service; het is niet noodzakelijkerwijs hetzelfde als de waarde die is opgegeven in de aanvraag headers.

Deze header wordt geretourneerd wanneer Content-md5 de header niet aanwezig is in de aanvraag.
x-ms-request-id Deze header identificeert de aanvraag die is ingediend en kan worden gebruikt voor het oplossen van problemen met de aanvraag. Zie API-bewerkingen voor problemen oplossenvoor meer informatie.
x-ms-version Hiermee wordt de versie van de Blob service aangegeven die wordt gebruikt om de aanvraag uit te voeren. Deze header wordt geretourneerd voor aanvragen die zijn gemaakt met versie 2009-09-19 en hoger.
Date Een UTC-datum/tijd-waarde die wordt gegenereerd door de service die het tijdstip aangeeft waarop het antwoord is geïnitieerd.
x-ms-request-server-encrypted: true/false Versie 2015-12-11 of nieuwer. De waarde van deze header wordt ingesteld op true als de inhoud van de aanvraag is versleuteld met het opgegeven algoritme en false anders.
x-ms-encryption-key-sha256 Versie 2019-02-02 of nieuwer. Deze header wordt geretourneerd als voor de aanvraag een door de klant geleverde sleutel voor versleuteling is gebruikt, zodat de client kan garanderen dat de inhoud van de aanvraag wordt versleuteld met de opgegeven sleutel.
x-ms-encryption-scope Versie 2019-02-02 of nieuwer. Deze header wordt geretourneerd als de aanvraag een versleutelings bereik heeft gebruikt, zodat de client kan garanderen dat de inhoud van de aanvraag is versleuteld met het versleutelings bereik.
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 koptekst als deze in de aanvraag aanwezig is en de waarde Maxi maal 1024 zicht bare ASCII-tekens bevat. Als de x-ms-client-request-id header niet aanwezig is in de aanvraag, wordt deze header niet in het antwoord weer gegeven.

Voorbeeldreactie

Response Status:  
HTTP/1.1 201 Created  
  
Response Headers:  
Transfer-Encoding: chunked  
x-ms-content-crc64: 77uWZTolTHU  
Date: Sun, 25 Sep 2011 23:47:09 GMT  
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0  

Autorisatie

Deze bewerking kan worden aangeroepen door de eigenaar van het account en door iedereen met een Shared Access Signature die gemachtigd is om naar deze BLOB of de container te schrijven.

Opmerkingen

Put Block uploadt een blok voor toekomstige opname in een blok-blob. Elk blok in een blok-Blob kan een andere grootte hebben. Een blok-Blob kan Maxi maal 50.000 toegewezen blokken bevatten. In de volgende tabel worden de maximum grootte van het blok en de BLOB beschreven die is toegestaan door de service versie:

Serviceversie Maximale blokgrootte (via Put Block) Maximale blobgrootte (via Put Block List) Maximale blobgrootte via enkele schrijfbewerking (via Put Blob)
Versie 2019-12-12 en hoger 4000-MiB Ongeveer 190,7 TiB (4000 MiB X 50.000 blokken) 5000 MiB (preview)
Versie 2016-05-31 t/m versie 2019-07-07 100 MiB Ongeveer 4,75 TiB (100 MiB x 50.000 blokken) 256 MiB
Versies vóór 2016-05-31 4 MiB Ongeveer 195 GiB (4 MiB x 50.000 blokken) 64 MiB

Het maximum aantal niet-toegewezen blokken dat kan worden gekoppeld aan een blob is 100.000. Als dit maximum wordt overschreden, retourneert de service de status code 409 (RequestEntityTooLargeBlockCountExceedsLimit).

Nadat u een set blokken hebt geüpload, kunt u de BLOB op de server maken of bijwerken vanuit deze set door de bewerking put Block List aan te roepen. Elk blok in de set wordt geïdentificeerd door een blok-ID die uniek is binnen die blob. Blok-Id's zijn gericht op een bepaalde blob, zodat verschillende blobs met dezelfde Id's kunnen worden geblokkeerd.

Als u Put Block een BLOB aanroept die nog niet bestaat, wordt er een nieuwe blok-BLOB gemaakt met een inhouds lengte van 0. Deze BLOB wordt opgesomd door de List Blobs bewerking als de include=uncommittedblobs optie is opgegeven. De blok keringen of blokken die u hebt geüpload, worden pas doorgevoerd wanneer u Put Block List de nieuwe BLOB aanroept. Een blob die op deze manier is gemaakt, wordt gedurende een week op de server onderhouden. Als u binnen die periode niet meer blokken of toegewezen blokken aan de BLOB hebt toegevoegd, wordt de BLOB opgeruimd.

Een blok dat met succes is geüpload met de Put Block bewerking, wordt pas onderdeel van een BLOB als het is doorgevoerd Put Block List . Vóór Put Block List wordt aangeroepen de nieuwe of bijgewerkte BLOB door te voeren, alle aanroepen om BLOB op te halen , retour neren de blob-inhoud zonder de toevoeging van het niet-doorgevoerde blok.

Als u een blok uploadt dat dezelfde blok-ID heeft als een ander blok dat nog niet is doorgevoerd, wordt het laatst geüploade blok met die ID doorgevoerd bij de volgende geslaagde Put Block List bewerking.

Nadat Put Block List is aangeroepen, worden alle niet-doorgevoerde blokken die in de lijst geblokkeerd zijn opgegeven als onderdeel van de nieuwe BLOB vastgelegd. Eventuele niet-doorgevoerde blokken die niet zijn opgegeven in de lijst met geblokkeerde voor de blob, worden opgeruimd en uit de Blob service verwijderd. Eventuele niet-doorgevoerde blokken worden ook opgeruimd als er geen geslaagde aanroepen naar Put Block of Put Block List binnen een week na de laatste geslaagde bewerking zijn Put Block . Als put-BLOB wordt aangeroepen voor de blob, worden alle niet-doorgevoerde blokken permanent opgeruimd.

Als de BLOB een actieve lease heeft, moet de client een geldige lease-ID opgeven in de aanvraag om een blok naar de BLOB te schrijven. Als de client geen lease-ID specificeert of een ongeldige lease-ID opgeeft, retourneert de Blob service status code 412 (de voor waarde is mislukt). Als de client een lease-ID opgeeft, maar de BLOB geen actieve lease heeft, retourneert de Blob service ook de status code 412 (de voor waarde is mislukt).

Voor een bepaalde BLOB moeten alle blok-Id's dezelfde lengte hebben. Als een blok is geüpload met een blok-ID van een andere lengte dan de blok-Id's voor bestaande niet-vastgelegde blokken, retourneert de service fout respons code 400 (ongeldige aanvraag).

Als u probeert een blok te uploaden dat groter is dan 4000 MiB voor versie 2019-12-12 en hoger, groter dan 100 MiB voor versie 2016-05-31 en hoger en groter dan 4 MiB voor oudere versies, retourneert de service status code 413 (aanvraag entiteit te groot). De service retourneert ook extra informatie over de fout in het antwoord, inclusief de maximale blok grootte die is toegestaan in bytes.

Bij aanroepen Put Block wordt het tijdstip van de laatste wijziging van een bestaande BLOB niet bijgewerkt.

Aanroep Put Block op een pagina-BLOB retourneert een fout.

Bij Put Block het aanroepen van een gearchiveerde BLOB wordt een fout geretourneerd en op Hot / Cool BLOB wordt de BLOB-laag niet gewijzigd.

Zie ook

Aanvragen voor Azure Storage autoriseren
Status en fout codes
Fout codes voor BLOB-service
Time-outs instellen voor BLOB-service bewerkingen