Share via


Blob incrementeel kopiëren

Met de Incremental Copy Blob bewerking wordt een momentopname van de blob van de bronpagina gekopieerd naar een doelpagina-blob. Alleen de verschillen met de eerder gekopieerde momentopname worden overgebracht naar de bestemming. De gekopieerde momentopnamen zijn volledige kopieën van de oorspronkelijke momentopname en u kunt deze lezen of kopiëren zoals u gewend bent. Deze API wordt ondersteund sinds REST-versie 31-05-2016.

Aanvraag

U kunt de Incremental Copy Blob aanvraag als volgt samenstellen. HTTPS wordt aanbevolen. Vervang myaccount door de naam van uw opslagaccount, mycontainer door de naam van uw container en myblob door de naam van uw doel-blob. De comp queryparameter, met de waarde van incrementalcopy, geeft aan dat deze aanvraag is om een incrementele momentopname te maken.

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

Geëmuleerde opslagservice-URI

Wanneer u een aanvraag indient voor de geëmuleerde opslagservice, geeft u de hostnaam van de emulator en Azure Blob Storage servicepoort op als 127.0.0.1:10000, gevolgd door de naam van het geëmuleerde opslagaccount. Geef ook aan dat deze aanvraag voor incrementeel kopiëren is door de comp queryparameter in te stellen op incrementalcopy.

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

Zie Azurite emulator gebruiken voor lokale Azure Storage-ontwikkeling voor meer informatie.

URI-parameters

U kunt de volgende aanvullende parameters 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. 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 autoriseren voor meer informatie.
x-ms-version Vereist voor alle geautoriseerde aanvragen en optioneel voor anonieme aanvragen. Hiermee geeft u de versie van de bewerking te gebruiken voor deze aanvraag. Zie Versiebeheer voor de Azure Storage-services voor meer informatie.
If-Modified-Since Optioneel. Een DateTime waarde. Geef deze voorwaardelijke header op om de blob alleen te kopiëren als de doel-blob is gewijzigd sinds de opgegeven datum/tijd. Als de doel-blob niet is gewijzigd, retourneert Blob Storage statuscode 412 (voorwaarde mislukt).
If-Unmodified-Since Optioneel. Een DateTime waarde. Geef deze voorwaardelijke header op om de blob alleen te kopiëren als de doel-blob niet is gewijzigd sinds de opgegeven datum/tijd. Als de doel-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 de blob te kopiëren, alleen als de opgegeven ETag waarde overeenkomt met de ETag waarde voor een bestaande doel-blob. Als de ETag voor de doel-blob niet overeenkomt met de ETag opgegeven voor If-Match, retourneert Blob Storage statuscode 412 (voorwaarde mislukt).
If-None-Match Optioneel. Een ETag waarde of het jokerteken (*).

Geef een ETag waarde op voor deze voorwaardelijke header om de blob te kopiëren, alleen als de opgegeven ETag waarde niet overeenkomt met de ETag waarde voor de doel-blob.

Geef het jokerteken (*) op om de bewerking uit te voeren, alleen als de doel-blob niet bestaat.

Als niet aan de opgegeven voorwaarde wordt voldaan, retourneert Blob Storage statuscode 412 (voorwaarde mislukt).
x-ms-copy-source:name Vereist. Hiermee geeft u de naam van de blobmomentopname van de bronpagina op.

Deze waarde is een URL met een lengte van maximaal 2 kibibytes (KiB) waarmee een momentopname van een pagina-blob wordt opgegeven. De waarde moet URL-gecodeerd zijn zoals deze wordt weergegeven in een aanvraag-URI. De bron-blob-URI kan op twee manieren worden geautoriseerd:

De bron-blob-URI kan verwijzen naar een momentopname van een pagina-blob, maar moet een SAS-token (Shared Access Signature) bevatten dat is gemaakt op de basis-blob van de momentopname. Het veld ondertekende resource (sr) van de SAS moet worden ingesteld op b. Bijvoorbeeld: https://<account-name>.blob.core.windows.net/<container-name>/<page-blob-name>?snapshot=2022-07-23T00:14:45.3964054Z&sp=r&st=2022-07-23T00:15:38Z&se=2022-07-23T08:15:38Z&spr=https&sv=2021-06-08&sr=b&sig=<signature>.

De bron-blob-URI kan verwijzen naar een momentopname van een openbare pagina-blob; bijvoorbeeld https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=<DateTime>.
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 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.

Aanvraagbody

Geen.

Antwoord

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

Statuscode

Een geslaagde bewerking retourneert statuscode 202 (Geaccepteerd). 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
ETag Bevat een waarde die u kunt gebruiken om bewerkingen voorwaardelijk uit te voeren. De waarde staat tussen aanhalingstekens.
Last-Modified De datum en tijd waarop de blob het laatst is gewijzigd. Zie Weergave van datum-/tijdwaarden in kopteksten voor meer informatie.

Elke schrijfbewerking op de blob (inclusief updates voor de metagegevens of eigenschappen van de blob) wijzigt de laatste wijzigingstijd van de blob.
x-ms-request-id Uniek identificeert 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 wordt gebruikt om de aanvraag uit te voeren.
Date Een UTC-datum/tijd-waarde die de tijd aangeeft waarop het antwoord is gestart. De service genereert deze waarde.
x-ms-copy-id: <id> De tekenreeks-id voor deze kopieerbewerking. Gebruik met Get Blob Properties om de status van deze kopieerbewerking te controleren of geef door aan Abort Copy Blob om een in behandeling zijnde kopie te stoppen.
x-ms-copy-status: pending De status van de kopieerbewerking. Dit is altijd in behandeling om aan te geven dat de kopie is gestart en wordt uitgevoerd.
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.

Voorbeeldantwoord

Hier volgt een voorbeeld van een antwoord voor een aanvraag om een incrementele kopie uit te voeren:

Response Status:
HTTP/1.1 202 Accepted

Response Headers: 
Last-Modified: <date> 
ETag: "0x8CEB669D794AFE2"
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: cc6b209a-b593-4be1-a38a-dde7c106f402
x-ms-version: 2016-05-31
x-ms-copy-id: 1f812371-a41d-49e6-b123-f4b542e851c5
x-ms-copy-status: pending
Date: <date> 

Autorisatie

Autorisatie is vereist bij het aanroepen van een bewerking voor gegevenstoegang in Azure Storage. In de volgende sectie wordt beschreven hoe het doelobject voor de Incremental Copy Blob bewerking kan worden geautoriseerd. Toegang tot de bron-blob of het bronbestand wordt afzonderlijk geautoriseerd, zoals wordt beschreven in de details voor de x-ms-copy-source aanvraagheader.

Belangrijk

Microsoft raadt aan Microsoft Entra ID met beheerde identiteiten te gebruiken om aanvragen voor Azure Storage te autoriseren. Microsoft Entra ID biedt superieure beveiliging en gebruiksgemak in vergelijking met autorisatie van gedeelde sleutels.

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 door Azure beheerde 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 behulp van 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, beheerde identiteit of service-principal om de Incremental Copy Blob bewerking aan te roepen, en de ingebouwde Azure RBAC-rol met de minste bevoegdheden 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

De bestemming van een incrementele kopie mag niet bestaan of moet zijn gemaakt met een vorige incrementele kopie van dezelfde bron-blob. Nadat u deze hebt gemaakt, wordt de doel-blob permanent gekoppeld aan de bron en kan deze alleen worden gebruikt voor incrementele kopieën. De Get Blob Properties API's en List Blobs geven aan of de blob een incrementele kopieer-blob is die op deze manier is gemaakt.

U kunt incrementele kopieer-blobs niet rechtstreeks downloaden. De enige ondersteunde bewerkingen zijn Get Blob Properties, Incremental Copy Bloben Delete Blob. U kunt de gekopieerde momentopnamen lezen en verwijderen zoals gewoonlijk.

U voert een incrementele kopie asynchroon uit op de service en u moet een poll uitvoeren voor voltooiing. Raadpleeg de Copy Blob API voor meer informatie over het peilen van een kopie die in behandeling is. Wanneer het kopiëren is voltooid, bevat de doel-blob een nieuwe momentopname. De Get Blob Properties API retourneert de momentopnametijd van de zojuist gemaakte momentopname.

De eerste keer dat u een incrementele kopie uitvoert op een doel-blob, wordt er een nieuwe blob gemaakt, met een momentopname die volledig uit de bron wordt gekopieerd. Elke volgende aanroep naar Incremental Copy Blob maakt een nieuwe momentopname, door alleen de differentiële wijzigingen van de eerder gekopieerde momentopname te kopiëren.

De differentiële wijzigingen worden berekend op de server door een Get Page Ranges aanroep uit te voeren op de bron-blob-momentopname. Ingesteld prevsnapshot op de meest recent gekopieerde momentopname. Daarom gelden dezelfde beperkingen voor Get Page RangesIncremental Copy Blob. U moet met name momentopnamen in oplopende volgorde kopiëren. Als de bron-blob opnieuw wordt gemaakt met of Put BlobCopy Blob, Incremental Copy Blob mislukken nieuwe momentopnamen.

De extra opslagruimte die door de gekopieerde momentopname wordt verbruikt, is de grootte van de differentiële gegevens die tijdens het kopiëren worden overgedragen. U kunt deze grootte bepalen door een differentiële Get Page Ranges API-aanroep uit te voeren op de momentopname om deze te vergelijken met de vorige momentopname.

Zie ook

Aanvragen autoriseren voor Azure Storage
Status en foutcodes
Time-outs instellen voor Blob Storage-bewerkingen