Blok uit-URL zetten

Met de bewerking wordt een nieuw blok gemaakt dat moet worden vastgelegd als onderdeel van een blob waarin de Put Block From URL inhoud van een URL wordt gelezen. Deze API is beschikbaar vanaf versie 2018-03-28 .

Aanvraag

De Put Block From URL aanvraag kan als volgt worden samengesteld. HTTPS wordt aanbevolen. Vervang myaccount door de naam van uw opslagaccount:

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

Geëmuleerde Storage Service-URI

Wanneer u een aanvraag indient voor de geëmuleerde opslagservice, geeft u de hostnaam van de emulator op en Blob service poort op als , gevolgd door de naam van het geëmuleerde 127.0.0.1:10000 opslagaccount:

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

Zie Using the Azure Storage Emulator for Development and Testing (De Azure Storage Emulator voor ontwikkeling en testen) voor meer informatie.

URI-parameters

Parameter Beschrijving
blockid Vereist. Een geldige Base64-tekenreekswaarde die het blok identificeert. Voordat de tekenreeks wordt gecodeerd, moet deze kleiner zijn dan of gelijk zijn aan 64 bytes.

Voor een bepaalde blob moet de lengte van de waarde die is opgegeven voor de parameter voor elk blockid blok dezelfde grootte hebben.

Houd er rekening mee dat de Base64-tekenreeks URL-gecodeerd moet zijn.
timeout Optioneel. De timeout parameter wordt uitgedrukt in seconden. Zie Time-outs instellen voor Blob Service-bewerkingen voor meer informatie.

Aanvraagheaders

In de volgende tabel worden de vereiste en optionele aanvraagheaders beschreven.

Aanvraagkoptekst Description
Authorization Vereist. Hiermee geeft u het autorisatieschema, de accountnaam en de handtekening op. Zie Aanvragen voor Azure Storage voor meer informatie.
Date of x-ms-date Vereist. Geef de Coordinated Universal Time (UTC) op voor de aanvraag. Zie Aanvragen voor toegang tot Azure Storage voor meer Azure Storage.
x-ms-version Vereist voor alle geautoriseerde aanvragen. Hiermee geeft u de versie van de bewerking moet worden gebruikt voor deze aanvraag. Zie Versieverlening voor de Azure Storage Services voor meer informatie. Voor Put Block From URL moet de versie 2018-03-28 of hoger zijn.
Content-Length Vereist. Hiermee geeft u het aantal bytes dat wordt verzonden in de aanvraag body. De waarde van deze header moet worden ingesteld op nul. Wanneer de lengte niet nul is, mislukt de bewerking met de statuscode 400 (Bad Request).
x-ms-copy-source:name Vereist. Hiermee geeft u de URL van de bron-blob op. De waarde kan een URL van maximaal 2 KiB zijn die een blob specificeert. De waarde moet URL-gecodeerd zijn zoals deze wordt weergegeven in een aanvraag-URI. De bron-blob moet openbaar zijn of moet worden geautoriseerd via een Shared Access Signature. Als de bron-blob openbaar is, is er geen autorisatie vereist om de bewerking uit te voeren. Hier zijn enkele voorbeelden van bronobject-URL's:

- https://myaccount.blob.core.windows.net/mycontainer/myblob
- https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=<DateTime>
- https://myaccount.blob.core.windows.net/mycontainer/myblob?versionid=<DateTime>
x-ms-copy-source-authorization: <scheme> <signature> Optioneel. Hiermee geeft u het autorisatieschema en de handtekening voor de bron kopiëren. Zie Aanvragen voor toegang tot Azure Storage voor meer Azure Storage.
Alleen schemabeer wordt ondersteund voor Azure Active Directory.
Deze header wordt ondersteund in versies 2020-10-02 en hoger.
x-ms-source-range Optioneel. Uploadt alleen de bytes van de blob in de bron-URL in het opgegeven bereik. Als dit niet is opgegeven, wordt de volledige inhoud van de bron-blob geüpload als één blok. Zie Specifying the Range Header for Blob Service Operations (Bereikheader opgeven voor Blob Service-bewerkingen) voor meer informatie.
x-ms-source-content-md5 Optioneel. Een MD5-hash van de blokinhoud van de URI. Deze hash wordt gebruikt om de integriteit van het blok te controleren tijdens het transport van de gegevens van de URI. Wanneer deze header is opgegeven, vergelijkt de opslagservice de hash van de inhoud die afkomstig is van de kopieerbron met deze headerwaarde.

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

Als de twee hashes niet overeenkomen, mislukt de bewerking met foutcode 400 (Bad Request).
x-ms-source-content-crc64 Optioneel. Een CRC64-hash van de blokinhoud van de URI. Deze hash wordt gebruikt om de integriteit van het blok te controleren tijdens het transport van de gegevens van de URI. Wanneer deze header is opgegeven, vergelijkt de opslagservice de hash van de inhoud die afkomstig is van de kopieerbron met deze headerwaarde.

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

Als de twee hashes niet overeenkomen, mislukt de bewerking met foutcode 400 (Bad Request).

Als beide x-ms-source-content-md5 x-ms-source-content-crc64 headers en aanwezig zijn, mislukt de aanvraag met een 400 (Slechte aanvraag).

Deze header wordt ondersteund in versie 2019-02-02 of hoger.
x-ms-encryption-scope Optioneel. Geeft het versleutelingsbereik aan dat moet worden gebruikt om de broninhoud 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 die wordt vastgelegd in de analyselogboeken wanneer logboekregistratie van opslaganalyse 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 About Storage Analytics Logging and Azure Logging: Using Logs to Track Storage Requests voor meer informatie.

Aanvraagheaders (door de klant geleverde versleutelingssleutels)

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

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

Aanvraagbody

Geen aanvraag body.

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: 2018-03-28  
x-ms-date: Sat, 31 Mar 2018 14:37:35 GMT    
Authorization: SharedKey myaccount:J4ma1VuFnlJ7yfk/Gu1GxzbfdJloYmBPWlfhZ/xn7GI=  
Content-Length: 0
x-ms-copy-source: https://myaccount.blob.core.windows.net/mycontainer/myblob
x-ms-source-range: bytes=0-499

Antwoord

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

Statuscode

Een geslaagde bewerking retourneert statuscode 201 (Gemaakt).

Zie Status- en foutcodes voor meer informatie over statuscodes.

Antwoordheaders

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

Antwoordheader Description
Content-MD5 Deze header wordt geretourneerd zodat de client de integriteit van berichtinhoud kan controleren. De waarde van deze header wordt berekend door de Blob service; het is niet noodzakelijkerwijs dezelfde waarde die is opgegeven in de aanvraagheaders. Voor versies 2019-02-02 of hoger wordt Deze header alleen geretourneerd wanneer de aanvraag deze header heeft.
x-ms-content-crc64 Voor versies 2019-02-02 of hoger wordt Deze header geretourneerd, zodat de client de integriteit van berichtinhoud kan controleren. De waarde van deze header wordt berekend door de Blob service; het is niet noodzakelijkerwijs dezelfde waarde die is opgegeven in de aanvraagheaders.

Deze header wordt geretourneerd wanneer x-ms-source-content-md5 de header niet aanwezig is in de aanvraag.
x-ms-request-id Deze header identificeert op unieke manier de aanvraag die is gemaakt en kan worden gebruikt voor het oplossen van problemen met de aanvraag. Zie Troubleshooting API Operations (Problemen met API-bewerkingen oplossen) voor meer informatie.
x-ms-version Geeft de versie aan van de Blob service gebruikt om de aanvraag uit te voeren.
Date Een UTC-datum/tijd-waarde die wordt gegenereerd door de service die het tijdstip aangeeft waarop het antwoord is gestart.
x-ms-request-server-encrypted: true/false Versie 2015-12-11 of hoger. De waarde van deze header is ingesteld op als de inhoud van het blok is versleuteld met behulp van het opgegeven true algoritme, en false anders.
x-ms-encryption-key-sha256 Versie 2019-02-02 of hoger. Deze header wordt geretourneerd als de aanvraag een door de klant geleverde sleutel voor versleuteling heeft gebruikt, zodat de client ervoor kan zorgen dat de inhoud van de aanvraag wordt versleuteld met behulp van de opgegeven sleutel.
x-ms-encryption-scope Versie 2019-02-02 of hoger. Deze header wordt geretourneerd als de aanvraag een versleutelingsbereik heeft gebruikt, zodat de client ervoor kan zorgen dat de inhoud van de aanvraag wordt versleuteld met behulp van het versleutelingsbereik.
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 header als deze aanwezig is in de aanvraag en de waarde uit x-ms-client-request-id 1024 zichtbare ASCII-tekens bestaat. Als de x-ms-client-request-id header niet aanwezig is in de aanvraag, is deze header niet aanwezig in het antwoord.

Voorbeeldreactie

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

Autorisatie

Deze bewerking kan worden aangeroepen door de accounteigenaar en door iedereen met een Shared Access Signature die toestemming heeft om naar deze blob of de container te schrijven.

Opmerkingen

Put Block From URL uploadt een blok voor toekomstige opname in een blok-blob. Een blok-blob kan maximaal 50.000 blokken bevatten. Elk blok kan een andere grootte hebben. De maximale grootte voor een blok dat is geüpload Put Block From URL met is 100 MiB. Zie Put Blockvoor het uploaden van grotere blokken (maximaal 4000 MiB).

In versie 2020-10-02 en hoger Azure Active Directory autorisatie ondersteund voor de bron van de kopieerbewerking.

Een blob kan op elk moment maximaal 100.000 niet-doorgestuurde blokken hebben. Als dit maximum wordt overschreden, retourneert de service statuscode 409 (RequestEntityTooLargeBlockCountExceedsLimit).

In de volgende tabel staan de maximale blok- en blobgroottes die per serviceversie zijn toegestaan.

Serviceversie Maximale blokgrootte (via Put Block from URL) Maximale blobgrootte (via Put Block List) Maximale blobgrootte via één schrijfbewerking (via Put Blob from URL)
Versie 2020-04-08 en hoger 4000 MiB Ongeveer 190,7 TiB (4000 MiB X 50.000 blokken) 5000 MiB (preview)
Versies vóór 2020-04-08 100 MiB Ongeveer 4,75 TiB (100 MiB x 50.000 blokken) 256 MiB

Nadat u een set blokken hebt geüpload, kunt u de blob op de server vanuit deze set maken of bijwerken door de bewerking Blokkeringslijst instellen 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 beperkt tot een bepaalde blob, zodat verschillende blobs blokken met dezelfde ID's kunnen hebben.

Als u aanroept op een blob die nog niet bestaat, wordt er een nieuwe blok-blob gemaakt met een Put Block From URL inhoudslengte van 0. Deze blob wordt geïnsemaneerd door de List Blobs bewerking als de optie is include=uncommittedblobs opgegeven. Het blok of de blokken die u hebt geüpload, worden pas vastgelegd wanneer u de Put Block List nieuwe blob aanroept. Een blob die op deze manier is gemaakt, wordt een week bewaard op de server; Als u niet meer blokken of vastgelegde blokken aan de blob hebt toegevoegd binnen die periode, wordt de blob verwijderd.

Een blok dat met de bewerking is geüpload, wordt pas onderdeel van een blob als Put Block From URL het is vastgelegd met Put Block List . Voordat wordt aangeroepen om de nieuwe of bijgewerkte blob door te voeren, retourneren alle aanroepen naar Blob krijgen de blob-inhoud zonder dat het Put Block List niet-doorgestuurde blok wordt opgenomen.

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

Nadat Put Block List is aangeroepen, worden alle niet-opgegeven blokken die zijn opgegeven in de blokkeringslijst, vastgelegd als onderdeel van de nieuwe blob. Niet-doorgestuurde blokken die niet zijn opgegeven in de blokkeringslijst voor de blob, worden verwijderd uit de Blob service. Niet-doorgestuurde blokken worden ook verwijderd als er binnen een week na de laatste geslaagde bewerking geen geslaagde aanroepen naar of op dezelfde Put Block From URL Put Block List blob zijn Put Block From URL uitgevoerd. Als Put Blob wordt aangeroepen op de blob, worden alle niet-doorgestuurde blokken verwijderd.

Als de blob een actieve lease heeft, moet de client een geldige lease-id opgeven voor de aanvraag om een blok naar de blob te schrijven. Als de client geen lease-id opgeeft of een ongeldige lease-id opgeeft, retourneert de Blob service statuscode 412 (Voorwaarde mislukt). Als de client een lease-id op geeft, maar de blob geen actieve lease heeft, retourneert de Blob service ook statuscode 412 (Voorwaarde mislukt).

Voor een bepaalde blob moeten alle blok-ID's dezelfde lengte hebben. Als een blok wordt geüpload met een blok-id met een andere lengte dan de blok-id's voor bestaande niet-doorgestuurde blokken, retourneert de service foutreactiecode 400 (Slechte aanvraag).

Als Put Block From URL u aanroept, wordt de laatste wijzigingstijd van een bestaande blob niet bijgewerkt.

Het Put Block From URL aanroepen van op een pagina-blob retourneert een fout.

Als u aanroept op een gearchiveerde blob, wordt er een foutbericht weergegeven en wordt de Put Block From URL Hot / Cool bloblaag niet gewijzigd in de blob-laag.

Zie ook