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-Match returnerar 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. Det här är alltid väntande för att indikera att kopieringen 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. Om rubriken x-ms-client-request-id inte finns i begäran finns 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
.
Viktigt
Microsoft rekommenderar att du använder Microsoft Entra ID med hanterade identiteter för att auktorisera begäranden till Azure Storage. Microsoft Entra ID ger överlägsen säkerhet och användarvänlighet jämfört med auktorisering med delad nyckel.
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 hjälp av Microsoft Entra ID.
Behörigheter
Nedan visas den RBAC-åtgärd som krävs för att en Microsoft Entra användare, grupp, hanterad identitet eller tjänstens huvudnamn ska anropa Incremental Copy Blob
åtgärden och den minst privilegierade inbyggda Azure RBAC-rollen som innehåller den här åtgärden:
- Azure RBAC-åtgärd:Microsoft.Storage/storageAccounts/blobServices/containers/blobs/write (för att skriva till en befintlig blob) eller Microsoft.Storage/storageAccounts/blobServices/containers/blobs/add/action (för att skriva en ny blob till målet)
- Minsta privilegierade inbyggda roll:Storage Blob Data-deltagare
Mer information om hur du tilldelar roller med hjälp av 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 skapas 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 Blob
och Delete Blob
. Du kan läsa och ta bort de kopierade ögonblicksbilderna som vanligt.
Du utför en inkrementell kopiering 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 kopieringen ä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 Blob
Incremental Copy Blob
misslyckas nya ögonblicksbilder.
Det extra lagringsutrymme som förbrukas av den kopierade ögonblicksbilden är storleken på de differentiella data som överförs under kopian. 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