Inkrementell kopieringsblob

Åtgärden Incremental Copy Blob kopierar en ögonblicksbild av källsidans blob till en målsidesblob. Endast skillnaderna från den tidigare kopierade ögonblicksbilden överförs till målet. De kopierade ögonblicksbilderna är fullständiga kopior av den ursprungliga ögonblicksbilden och du kan läsa eller kopiera från dem som vanligt. Det här API:et stöds sedan REST-version 2016-05-31.

Förfrågan

Du kan skapa begäran på Incremental Copy Blob följande sätt. HTTPS rekommenderas. Ersätt myaccount med namnet på ditt lagringskonto, mycontainer med namnet på din container och myblob med namnet på din målblob. Frågeparametern comp , med värdet incrementalcopy, anger att den här begäran är att skapa en inkrementell ögonblicksbild.

URI för PUT-metodbegäran HTTP-version
https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=incrementalcopy HTTP/1.1

Emulerad lagringstjänst-URI

När du gör en begäran mot den emulerade lagringstjänsten anger du emulatorns värdnamn och Azure Blob Storage tjänstport som 127.0.0.1:10000, följt av det emulerade lagringskontonamnet. Ange också att den här begäran avser inkrementell kopiering genom att ställa in comp frågeparametern på incrementalcopy.

URI för PUT-metodbegäran HTTP-version
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob?comp=incrementalcopy HTTP/1.1

Mer information finns i Använda Azurite-emulatorn för lokal Azure Storage-utveckling.

URI-parametrar

Du kan ange följande ytterligare parametrar för begärande-URI:n.

Parameter Beskrivning
timeout Valfritt. Parametern timeout uttrycks i sekunder. Mer information finns i Ställa in tidsgränser för Blob Storage-åtgärder.

Begärandehuvuden

I följande tabell beskrivs obligatoriska och valfria begärandehuvuden.

Begärandehuvud Beskrivning
Authorization Krävs. Anger auktoriseringsschema, kontonamn och signatur. Mer information finns i Auktorisera begäranden till Azure Storage.
Date eller x-ms-date Krävs. Anger Coordinated Universal Time (UTC) för begäran. Mer information finns i Auktorisera begäranden till Azure Storage.
x-ms-version Krävs för alla auktoriserade begäranden och valfritt för anonyma begäranden. Anger vilken version av åtgärden som ska användas för den här begäran. Mer information finns i Versionshantering för Azure Storage-tjänsterna.
If-Modified-Since Valfritt. Ett DateTime värde. Ange den här villkorliga rubriken för att kopiera bloben endast om målbloben har ändrats sedan det angivna datumet/tiden. Om målbloben inte har ändrats returnerar Blob Storage statuskoden 412 (förhandsvillkoret misslyckades).
If-Unmodified-Since Valfritt. Ett DateTime värde. Ange den här villkorliga rubriken för att kopiera bloben endast om målbloben inte har ändrats sedan det angivna datumet/tiden. Om målbloben har ändrats returnerar Blob Storage statuskod 412 (förhandsvillkoret misslyckades).
If-Match Valfritt. Ett ETag värde. Ange ett ETag värde för den här villkorsstyrda rubriken för att kopiera bloben, endast om det angivna ETag värdet matchar ETag värdet för en befintlig målblob. ETag Om för målbloben inte matchar angiven ETag för If-Matchreturnerar Blob Storage statuskod 412 (förhandsvillkoret misslyckades).
If-None-Match Valfritt. Ett ETag värde eller jokertecknet (*).

Ange ett ETag värde för den här villkorliga rubriken för att kopiera bloben, endast om det angivna ETag värdet inte matchar ETag värdet för målbloben.

Ange jokertecknet (*) för att utföra åtgärden, endast om målbloben inte finns.

Om det angivna villkoret inte uppfylls returnerar Blob Storage statuskod 412 (förhandsvillkoret misslyckades).
x-ms-copy-source:name Krävs. Anger namnet på ögonblicksbilden av källsidans blob.

Det här värdet är en URL på upp till 2 kibibyte (KiB) som anger en ögonblicksbild av sidbloben. Värdet ska vara URL-kodat som det skulle visas i en begärande-URI. Källblob-URI:n kan auktoriseras på något av två sätt:

Källblob-URI:n kan referera till en ögonblicksbild av sidbloben, men den måste innehålla en SAS-token (signatur för delad åtkomst) som skapades på ögonblicksbildens basblob. Det signerade resursfältet (sr) i SAS ska vara inställt på b. Exempel: 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>.

Källblob-URI:n kan referera till en ögonblicksbild av en offentlig sidblob. till exempel https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=<DateTime>.
x-ms-client-request-id Valfritt. Tillhandahåller ett klientgenererat, täckande värde med en gräns på 1 KiB-tecken som registreras i loggarna när loggningen har konfigurerats. Vi rekommenderar starkt att du använder det här huvudet för att korrelera aktiviteter på klientsidan med begäranden som servern tar emot. Mer information finns i Övervaka Azure Blob Storage.

Begärandetext

Inga.

Svarsåtgärder

Svaret innehåller en HTTP-statuskod och en uppsättning svarshuvuden.

Statuskod

En lyckad åtgärd returnerar statuskod 202 (godkänd). Information om statuskoder finns i Status och felkoder.

Svarshuvuden

Svaret för den här åtgärden innehåller följande rubriker. Svaret kan även innehålla ytterligare STANDARD HTTP-huvuden. Alla standardhuvuden överensstämmer med http/1.1-protokollspecifikationen.

Syntax Description
ETag Innehåller ett värde som du kan använda för att utföra åtgärder villkorligt. Värdet är inom citattecken.
Last-Modified Datum och tid då bloben senast ändrades. Mer information finns i Representation of date/time values in headers (Representation av datum-/tidsvärden i rubriker).

Alla skrivåtgärder på bloben (inklusive uppdateringar av blobens metadata eller egenskaper) ändrar blobens senast ändrade tid.
x-ms-request-id Identifierar den begäran som gjordes unikt och kan användas för att felsöka begäran. Mer information finns i Felsöka API-åtgärder.
x-ms-version Anger vilken version av Blob Storage som används för att köra begäran.
Date Ett datum-/tidsvärde för UTC som anger den tid då svaret initierades. Tjänsten genererar det här värdet.
x-ms-copy-id: <id> Strängidentifieraren för den här kopieringsåtgärden. Använd med Get Blob Properties för att kontrollera status för den här kopieringsåtgärden eller skicka till för Abort Copy Blob att stoppa en väntande kopia.
x-ms-copy-status: pending Kopieringsåtgärdens tillstånd. Detta väntar alltid för att indikera att kopian har startats och pågår.
x-ms-client-request-id Kan användas för att felsöka begäranden och motsvarande svar. Värdet för det här huvudet är lika med värdet för x-ms-client-request-id huvudet, om det finns i begäran. Värdet är högst 1 024 synliga ASCII-tecken. x-ms-client-request-id Om rubriken inte finns i begäran visas den inte i svaret.

Själva svaret

Inga.

Exempelsvar

Följande är ett exempelsvar för en begäran om att utföra en inkrementell kopia:

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> 

Auktorisering

Auktorisering krävs när du anropar en dataåtkomståtgärd i Azure Storage. I följande avsnitt beskrivs hur målobjektetIncremental Copy Blob för åtgärden kan auktoriseras. Åtkomst till källbloben eller -filen auktoriseras separat, enligt beskrivningen i informationen för begärandehuvudet x-ms-copy-source .

Azure Storage stöder användning av Microsoft Entra ID för att auktorisera begäranden till blobdata. Med Microsoft Entra ID kan du använda rollbaserad åtkomstkontroll i Azure (Azure RBAC) för att bevilja behörigheter till ett säkerhetsobjekt. Säkerhetsobjektet kan vara en användare, grupp, programtjänstens huvudnamn eller en hanterad Azure-identitet. Säkerhetsobjektet autentiseras av Microsoft Entra ID för att returnera en OAuth 2.0-token. Token kan sedan användas för att auktorisera en begäran mot Blob-tjänsten.

Mer information om auktorisering med Microsoft Entra ID finns i Auktorisera åtkomst till blobar med Microsoft Entra ID.

Behörigheter

Nedan visas den RBAC-åtgärd som krävs för att en Microsoft Entra användare, grupp eller tjänstens huvudnamn ska kunna anropa Incremental Copy Blob åtgärden och den minst privilegierade inbyggda Azure RBAC-rollen som innehåller den här åtgärden:

Mer information om hur du tilldelar roller med Azure RBAC finns i Tilldela en Azure-roll för åtkomst till blobdata.

Kommentarer

Målet för en inkrementell kopia får antingen inte finnas eller ha skapats med en tidigare inkrementell kopia från samma källblob. När du har skapat den associeras målbloben permanent med källan och kan bara användas för inkrementella kopior. Get Blob Properties API:erna och List Blobs anger om bloben är en inkrementell kopieringsblob som skapats på det här sättet.

Du kan inte ladda ned inkrementella kopieringsblobar direkt. De enda åtgärder som stöds är Get Blob Properties, Incremental Copy Bloboch Delete Blob. Du kan läsa och ta bort de kopierade ögonblicksbilderna som vanligt.

Du utför en inkrementell kopia asynkront på tjänsten och du måste söka efter slutförande. Mer information om hur du avsöker en väntande kopia finns i API:et Copy Blob . När kopian är klar innehåller målbloben en ny ögonblicksbild. API:et Get Blob Properties returnerar ögonblicksbildtiden för den nyligen skapade ögonblicksbilden.

Första gången du utför en inkrementell kopia på en målblob skapas en ny blob med en ögonblicksbild som kopieras helt från källan. Varje efterföljande anrop till Incremental Copy Blob skapar en ny ögonblicksbild genom att endast kopiera differentiella ändringar från den tidigare kopierade ögonblicksbilden.

Differentiella ändringar beräknas på servern genom att utfärda ett Get Page Ranges anrop på ögonblicksbilden av källbloben. Ange prevsnapshot till den senast kopierade ögonblicksbilden. Därför gäller samma begränsningar Get Page Ranges för Incremental Copy Blob. Mer specifikt måste du kopiera ögonblicksbilder i stigande ordning, och om källbloben återskapas med hjälp Put Blob av eller Copy BlobIncremental Copy Blob kommer nya ögonblicksbilder att misslyckas.

Det extra lagringsutrymme som förbrukas av den kopierade ögonblicksbilden är storleken på de differentiella data som överförs under kopieringen. Du kan fastställa den här storleken genom att utföra ett differentiellt Get Page Ranges API-anrop på ögonblicksbilden för att jämföra den med den tidigare ögonblicksbilden.

Se även

Auktorisera begäranden till Azure Storage
Status- och felkoder
Ange tidsgränser för Blob Storage-åtgärder