Momentopname maken van blob

Met de Snapshot Blob bewerking wordt een alleen-lezen momentopname van een blob gemaakt.

Aanvraag

U kunt de Snapshot Blob aanvraag als volgt samenstellen. HTTPS wordt aanbevolen. Vervang myaccount door de naam van uw opslagaccount:

AANVRAAG-URI voor PUT-methode HTTP-versie
https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=snapshot HTTP/1.1

Geëmuleerde opslagservice-URI

Wanneer u een aanvraag doet voor de geëmuleerde opslagservice, geeft u de hostnaam van de emulator en Azure Blob Storage poort op als 127.0.0.1:10000, gevolgd door de naam van het geëmuleerde account:

AANVRAAG-URI voor PUT-methode HTTP-versie
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob?comp=snapshot HTTP/1.1

Zie Use the Azurite emulator for local Azure Storage development (De Azurite-emulator gebruiken voor lokale Azure Storage-ontwikkeling) voor meer informatie.

URI-parameters

U kunt de volgende aanvullende parameter opgeven voor de aanvraag-URI.

Parameter Beschrijving
timeout Optioneel. De timeout parameter wordt uitgedrukt in seconden. Zie Time-outs instellen voor Blob Storage-bewerkingen voor meer informatie.

Aanvraagheaders

In de volgende tabel worden vereiste en optionele aanvraagheaders beschreven.

Aanvraagheader Beschrijving
Authorization Vereist. Hiermee geeft u het autorisatieschema, de accountnaam en de handtekening op. Zie Aanvragen autoriseren voor Azure Storage voor meer informatie.
Date of x-ms-date Vereist. Geef de Coordinated Universal Time (UTC) op voor de aanvraag. Zie Aanvragen autoriseren voor Azure Storage voor meer informatie.
x-ms-version Vereist voor alle geautoriseerde aanvragen. Hiermee geeft u de versie van de bewerking te gebruiken voor deze aanvraag. Zie Versiebeheer voor de Azure Storage-services voor meer informatie.
x-ms-meta-name:value Optioneel. Hiermee geeft u een door de gebruiker gedefinieerd naam-waardepaar op dat is gekoppeld aan de blob. Als u geen naam-waardeparen opgeeft, kopieert de bewerking de metagegevens van de basisblob naar de momentopname. Als u een of meer naam-waardeparen opgeeft, wordt de momentopname gemaakt met de opgegeven metagegevens en worden metagegevens niet gekopieerd uit de basis-blob.

Vanaf versie 2009-09-19 moeten metagegevensnamen voldoen aan de naamgevingsregels voor C#-id's. Zie Containers, blobs en metagegevens een naam geven en hiernaar verwijzen voor meer informatie.
If-Modified-Since Optioneel. Een DateTime waarde. Geef deze voorwaardelijke header op om een momentopname van de blob te maken, alleen als deze is gewijzigd sinds de opgegeven datum/tijd. Als de basis-blob niet is gewijzigd, retourneert Blob Storage statuscode 412 (Voorwaarde mislukt).
If-Unmodified-Since Optioneel. Een DateTime waarde. Geef deze voorwaardelijke header op om een momentopname van de blob te maken, alleen als deze niet is gewijzigd sinds de opgegeven datum/tijd. Als de basis-blob is gewijzigd, retourneert Blob Storage statuscode 412 (Voorwaarde mislukt).
If-Match Optioneel. Een ETag waarde. Geef een ETag waarde op voor deze voorwaardelijke header om een momentopname van de blob te maken, alleen als ETag de waarde overeenkomt met de opgegeven waarde. Als de waarden niet overeenkomen, retourneert Blob Storage statuscode 412 (Voorwaarde mislukt).
If-None-Match Optioneel. Een ETag waarde.

Geef een ETag waarde op voor deze voorwaardelijke header om een momentopname van de blob te maken, alleen als ETag de waarde niet overeenkomt met de opgegeven waarde. Als de waarden identiek zijn, retourneert Blob Storage statuscode 412 (Voorwaarde mislukt).
x-ms-encryption-scope Optioneel. Geeft het versleutelingsbereik aan dat moet worden gebruikt om de inhoud van de aanvraag te versleutelen. Deze header wordt ondersteund in versie 2019-02-02 en hoger.
x-ms-lease-id:<ID> Optioneel. Als u deze header opgeeft, wordt de bewerking alleen uitgevoerd als aan beide van de volgende voorwaarden wordt voldaan:

- De lease van de blob is momenteel actief.
- De lease-id die in de aanvraag is opgegeven, komt overeen met die van de blob.

Als deze header is opgegeven en aan een van deze voorwaarden niet wordt voldaan, mislukt de aanvraag. De Snapshot Blob bewerking mislukt met statuscode 412 (voorwaarde mislukt).
x-ms-client-request-id Optioneel. Biedt een door de client gegenereerde, ondoorzichtige waarde met een limiet 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 Azure Blob Storage bewaken voor meer informatie.

Deze bewerking ondersteunt ook het gebruik van voorwaardelijke headers om de bewerking uit te voeren, alleen als aan een opgegeven voorwaarde wordt voldaan. Zie Voorwaardelijke headers opgeven voor Blob Storage-bewerkingen voor meer informatie.

Aanvraagheaders (door de klant verstrekte versleutelingssleutels)

Vanaf versie 2019-02-02 kunt u de volgende headers opgeven 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. Als een blob eerder is versleuteld met een door de klant verstrekte sleutel, moeten deze headers worden opgenomen in de aanvraag om de leesbewerking te voltooien.

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

Aanvraagbody

Geen.

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 extra, standaard HTTP-headers bevatten. Alle standaardheaders voldoen aan de HTTP/1.1-protocolspecificatie.

Syntax Description
x-ms-snapshot: <DateTime> Retourneert een DateTime waarde die de momentopname uniek identificeert. De waarde van deze header geeft de momentopnameversie aan en u kunt deze gebruiken in volgende aanvragen voor toegang tot de momentopname. Houd er rekening mee dat deze waarde ondoorzichtig is.
ETag De ETag van de momentopname. Als de aanvraagversie 2011-08-18 of hoger is, wordt de ETag waarde tussen aanhalingstekens geplaatst. Houd er rekening mee dat een momentopname niet kan worden geschreven naar, zodat de ETag van een bepaalde momentopname nooit verandert. De ETag van de momentopname wijkt echter af van die van de basis-blob als nieuwe metagegevens bij de Snaphot Blob aanvraag worden opgegeven. Als er geen metagegevens zijn opgegeven met de aanvraag, is de ETag van de momentopname identiek aan die van de basis-blob, op het moment dat de momentopname is gemaakt.
Last-Modified De laatste wijzigingstijd van de momentopname. Zie Weergave van datum-tijdwaarden in kopteksten voor meer informatie.

Houd er rekening mee dat een momentopname niet naar kan worden geschreven, zodat de laatste wijzigingstijd van een bepaalde momentopname nooit verandert. De laatste wijzigingstijd van de momentopname wijkt echter af van die van de basis-blob als er nieuwe metagegevens worden opgegeven bij de Snaphot Blob aanvraag. Als er geen metagegevens zijn opgegeven bij de aanvraag, is de laatste wijzigingstijd van de momentopname identiek aan die van de basis-blob, op het moment dat de momentopname is gemaakt.
x-ms-request-id Identificeert op unieke wijze de aanvraag die is gedaan en kan worden gebruikt voor het oplossen van problemen met de aanvraag. Zie Problemen met API-bewerkingen oplossen voor meer informatie.
x-ms-version Geeft de versie van Blob Storage aan die is gebruikt om de aanvraag uit te voeren. Deze header wordt geretourneerd voor aanvragen die zijn gedaan in versie 2009-09-19 en hoger.
Date Een UTC-datum/tijd-waarde die de tijd aangeeft waarop het antwoord is gestart. De service genereert deze waarde.
x-ms-request-server-encrypted: true/false Versie 2019-02-02 of hoger. De waarde van deze header wordt ingesteld op true, als de inhoud van de aanvraag is versleuteld met behulp van het opgegeven algoritme. Anders wordt de waarde ingesteld op false.
x-ms-encryption-key-sha256 Versie 2019-02-02 of hoger. Wordt geretourneerd als de aanvraag een door de klant verstrekte sleutel voor versleuteling heeft gebruikt. De client kan ervoor zorgen dat de inhoud van de aanvraag is versleuteld met behulp van de opgegeven sleutel.
x-ms-encryption-scope Versie 2019-02-02 of hoger. Wordt geretourneerd als de aanvraag een versleutelingsbereik heeft gebruikt. De client kan ervoor zorgen dat de inhoud van de aanvraag is versleuteld met behulp van het versleutelingsbereik.
x-ms-version-id: <DateTime> Versie 2019-12-12 en hoger. Retourneert een ondoorzichtige DateTime waarde die de blob uniek identificeert. De waarde van deze header geeft de versie van de blob aan en u kunt deze gebruiken in volgende aanvragen voor toegang tot de blob.
x-ms-client-request-id 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. De waarde is maximaal 1024 zichtbare ASCII-tekens. Als de x-ms-client-request-id header niet aanwezig is in de aanvraag, is deze niet aanwezig in het antwoord.

Hoofdtekst van de reactie

Geen.

Autorisatie

Autorisatie is vereist bij het aanroepen van een bewerking voor gegevenstoegang in Azure Storage. U kunt de Snapshot Blob bewerking autoriseren zoals hieronder wordt beschreven.

Azure Storage ondersteunt het gebruik van Microsoft Entra ID om aanvragen voor blobgegevens te autoriseren. Met Microsoft Entra ID kunt u op rollen gebaseerd toegangsbeheer van Azure (Azure RBAC) gebruiken om machtigingen te verlenen aan een beveiligingsprincipal. De beveiligingsprincipal kan een gebruiker, groep, toepassingsservice-principal of beheerde Azure-identiteit zijn. De beveiligingsprincipal wordt geverifieerd door Microsoft Entra ID om een OAuth 2.0-token te retourneren. Het token kan vervolgens worden gebruikt om een aanvraag voor de Blob-service te autoriseren.

Zie Toegang tot blobs autoriseren met Microsoft Entra ID voor meer informatie over autorisatie met behulp van Microsoft Entra ID.

Machtigingen

Hieronder vindt u de RBAC-actie die nodig is voor een Microsoft Entra gebruiker, groep of service-principal om de Snapshot Blob bewerking aan te roepen, en de minst bevoorrechte ingebouwde Azure RBAC-rol die deze actie omvat:

Zie Een Azure-rol toewijzen voor toegang tot blobgegevens voor meer informatie over het toewijzen van rollen met behulp van Azure RBAC.

Opmerkingen

Momentopnamen bieden alleen-lezen versies van blobs. Nadat u een momentopname hebt gemaakt, kunt u deze lezen, kopiëren of verwijderen, maar u kunt deze niet wijzigen.

Een momentopname biedt een handige manier om een back-up te maken van blobgegevens. U kunt een momentopname gebruiken om een blob te herstellen naar een eerdere versie door Blob kopiëren aan te roepen om een basisblob met de bijbehorende momentopname te overschrijven.

Wanneer u een momentopname maakt, retourneert Blob Storage een DateTime waarde die de momentopname uniek identificeert ten opzichte van de basis-blob. U kunt deze waarde gebruiken om verdere bewerkingen uit te voeren op de momentopname. Houd er rekening mee dat u deze DateTime waarde als ondoorzichtig moet behandelen.

De DateTime waarde identificeert de momentopname op de URI. Een basis-blob en de momentopnamen hebben bijvoorbeeld URI's die er ongeveer als volgt uitzien:

  • Basis-blob: http://myaccount.blob.core.windows.net/mycontainer/myblob

  • Momentopname: http://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=<DateTime>

Telkens wanneer u de Snapshot Blob bewerking aanroept, maakt u een nieuwe momentopname met een unieke DateTime waarde. Een blob kan een willekeurig aantal momentopnamen ondersteunen. Bestaande momentopnamen worden nooit overschreven. U verwijdert ze expliciet door Blob verwijderen aan te roepen en de x-ms-include-snapshots header in te stellen op de juiste waarde.

Een geslaagde aanroep naar Snapshot Blob retourneert een DateTime waarde in de x-ms-snapshot antwoordheader. U kunt deze DateTime waarde vervolgens gebruiken om lees-, verwijder- of kopieerbewerkingen uit te voeren op een bepaalde momentopnameversie. U kunt elke Blob Storage-bewerking aanroepen die geldig is voor een momentopname door op te ?snapshot=<DateTime> geven achter de naam van de blob.

Wanneer u een momentopname van een blob maakt, worden de volgende systeemeigenschappen met dezelfde waarden naar de momentopname gekopieerd:

  • Content-Type

  • Content-Encoding

  • Content-Language

  • Content-Length

  • Cache-Control

  • Content-MD5

  • x-ms-blob-sequence-number (alleen voor pagina-blobs)

  • x-ms-blob-committed-block-count (alleen voor toevoeg-blobs)

  • x-ms-copy-id (versie 2012-02-12 en hoger)

  • x-ms-copy-status (versie 2012-02-12 en hoger)

  • x-ms-copy-source (versie 2012-02-12 en hoger)

  • x-ms-copy-progress (versie 2012-02-12 en hoger)

  • x-ms-copy-completion-time (versie 2012-02-12 en hoger)

  • x-ms-copy-status-description (versie 2012-02-12 en hoger)

De vastgelegde blokkeringslijst van de basis-blob wordt ook gekopieerd naar de momentopname, als de blob een blok-blob is. Eventuele niet-doorgevoerde blokken worden niet gekopieerd.

De momentopname-blob is altijd even groot als de basis-blob op het moment dat de momentopname wordt gemaakt. De waarde van de Content-Length header voor de momentopname-blob is dezelfde als die voor de basis-blob.

U kunt een of meer nieuwe metagegevenswaarden voor de momentopname opgeven door de x-ms-meta-name:value header voor de aanvraag op te geven. Als deze header niet is opgegeven, worden de metagegevens die zijn gekoppeld aan de basis-blob gekopieerd naar de momentopname.

Alle tags die zijn gekoppeld aan de basis-blob, worden gekopieerd naar de momentopname. Het is niet mogelijk om nieuwe tagwaarden in te stellen voor de momentopname.

U kunt voorwaardelijke headers opgeven voor de aanvraag om alleen een momentopname van de blob te maken als aan een voorwaarde wordt voldaan. Als niet aan de opgegeven voorwaarde wordt voldaan, wordt de momentopname niet gemaakt. De service retourneert statuscode 412 (Voorwaarde mislukt), samen met aanvullende foutinformatie over de niet-vervulde voorwaarde.

Als de basis-blob een actieve lease heeft, kunt u een momentopname van de blob maken zolang aan een van de volgende voorwaarden van de aanvraag wordt voldaan:

  • De voorwaardelijke x-ms-lease-id header wordt opgegeven en de actieve lease-id voor de basis-blob wordt opgenomen in de aanvraag. Deze voorwaarde geeft aan dat de momentopname alleen wordt gemaakt als de lease actief is en de opgegeven lease-id overeenkomt met die is gekoppeld aan de blob.

  • De x-ms-lease-id header wordt helemaal niet opgegeven. In dat geval wordt de exclusieve schrijflease genegeerd.

Houd er rekening mee dat een lease die is gekoppeld aan de basis-blob niet naar de momentopname wordt gekopieerd. Momentopnamen kunnen niet worden geleased.

Wanneer u een basis-blob kopieert met behulp van de bewerking Blob kopiëren , worden momentopnamen van de basis-blob niet gekopieerd naar de doel-blob. Wanneer een doel-blob wordt overschreven met een kopie, blijven alle momentopnamen die zijn gekoppeld aan de doel-blob intact onder de naam.

U kunt een momentopname-blob over de basis-blob kopiëren om een eerdere versie van een blob te herstellen. De momentopname blijft behouden, maar de basis-blob wordt overschreven met een kopie die zowel kan worden gelezen als geschreven.

Notitie

Voor het promoten van een momentopname worden geen extra kosten in rekening gebracht voor opslagresources. Dit komt doordat blokken of pagina's worden gedeeld tussen de momentopname en de basis-blob.

U kunt een bloblaag instellen voor een momentopname, te beginnen met REST-versie 2019-12-12. Als een laag is ingesteld op een hoofd-blob, nemen alle momentopnamen de laag over van de basis-blob. Het maken van een momentopname in een gearchiveerde blob mislukt. Als u de laag voor een object expliciet instelt, resulteert dit in facturering voor de volledige grootte van het object. Als u een momentopname maakt van een blob met de ingestelde laag, wordt de facturering van de hoofd-blob en de momentopname volledig gekopieerd. Zie Dynamische, statische en archiefopslaglagen voor gedetailleerde informatie over lagen op blok-blobniveau.

Er zijn enkele verschillen tussen Azure Premium Storage-accounts en standaardopslagaccounts, wat betreft momentopnamen:

  • Het aantal momentopnamen per pagina-blob in een Premium Storage-account is beperkt tot 100. Als deze limiet wordt overschreden, retourneert de Snapshot Blob bewerking foutcode 409 (Aantal momentopnamen overschreden).

  • U kunt elke tien minuten een momentopname maken van een pagina-blob in een Premium Storage-account. Als deze snelheid wordt overschreden, retourneert de Snapshot Blob bewerking foutcode 409 (Snelheid van momentopnamebewerking overschreden).

  • U kunt een momentopname van een pagina-blob in een Premium Storage-account niet lezen met behulp van Blob ophalen. In dit geval retourneert de service foutcode 400 (ongeldige bewerking). U kunt echter Blobeigenschappen ophalen en Metagegevens van blob ophalen aanroepen voor een momentopname.

    Als u een momentopname wilt lezen, kunt u de bewerking Blob kopiëren gebruiken om een momentopname te kopiëren naar een andere pagina-blob in het account. De doel-blob voor de kopieerbewerking mag geen bestaande momentopnamen hebben. Als de doel-blob wel momentopnamen bevat, Copy Blob retourneert foutcode 409 (SnapshotsPresent).

Zie Blob Storage-bewerkingen gebruiken met Azure Premium Storage voor meer informatie.

Wanneer versiebeheer is ingeschakeld, genereert het maken van een momentopname van een blob ook een nieuwe versie en wordt de vorige versie van de basis-blob opgeslagen. De x-ms-version-id parameter retourneert een ondoorzichtige DateTime waarde voor de nieuwe versie van de blob.

Billing

Prijsaanvragen kunnen afkomstig zijn van clients die gebruikmaken van Blob Storage-API's, rechtstreeks via de Blob Storage REST API of vanuit een Azure Storage-clientbibliotheek. Met deze aanvragen worden kosten per transactie in rekening gebracht. Het type transactie is van invloed op de manier waarop de rekening in rekening wordt gebracht. Leestransacties worden bijvoorbeeld toegevoegd aan een andere factureringscategorie dan schrijftransacties. In de volgende tabel ziet u de factureringscategorie voor Snapshot Blob aanvragen op basis van het type opslagaccount:

Bewerking Type opslagaccount Factureringscategorie
Momentopname maken van blob Premium-blok-blob
Standard v2 voor algemeen gebruik
Standard v1 voor algemeen gebruik
Leesbewerkingen

Zie prijzen voor Azure Blob Storage voor meer informatie over prijzen voor de opgegeven factureringscategorie.

Zie ook

Een momentopname van een blob maken

Aanvragen voor Azure Storage autoriseren

Status en foutcodes

Blob Storage-foutcodes