Dela via


Kopiera blob från URL

Åtgärden Copy Blob From URL kopierar en blob till ett mål i lagringskontot synkront för källblobstorlekar på upp till 256 mebibyte (MiB). Det här API:et är tillgängligt från och med version 2018-03-28.

Källan för en Copy Blob From URL åtgärd kan vara en allokerad blockblob i ett Azure Storage-konto som antingen är offentligt eller auktoriserat med en signatur för delad åtkomst.

Begäran

Du kan skapa Copy Blob From URL begäran enligt följande. Vi rekommenderar HTTPS. Ersätt myaccount med namnet på ditt lagringskonto, mycontainer med namnet på containern och myblob med namnet på din målblob.

URI för PUT-metodbegäran HTTP-version
https://myaccount.blob.core.windows.net/mycontainer/myblob HTTP/1.1 (på engelska)

URI för den emulerade lagringstjänsten

När du gör en begäran mot den emulerade lagringstjänsten anger du emulatorns värdnamn och Azure Blob Storage-port som 127.0.0.1:10000, följt av namnet på det emulerade lagringskontot:

URI för PUT-metodbegäran HTTP-version
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob HTTP/1.1 (på engelska)

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

URI parametrar

Du kan ange följande ytterligare parametrar på begärande-URI:n:

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

Förfrågningsrubriker

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

Förfrågningshuvudrad Beskrivning
Authorization Obligatoriskt. Anger auktoriseringsschema, kontonamn och signatur. Mer information finns i Auktorisera begäranden till Azure Storage.
Date eller x-ms-date Obligatoriskt. Anger UTC (Coordinated Universal Time) 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. Mer information finns i Versionshantering för Azure Storage-tjänsterna.
x-ms-meta-name:value Valfritt. Anger ett användardefinierat namn/värde-par som är associerat med bloben. Om inga namn/värde-par anges kopierar åtgärden metadata från källbloben eller filen till målbloben. Om ett eller flera namn/värde-par anges skapas målbloben med angivna metadata och metadata kopieras inte från källbloben eller källfilen.

Från och med version 2009-09-19 måste metadatanamn följa namngivningsreglerna för C#-identifierare. Mer information finns i Namnge och referera till containrar, blobar och metadata.
x-ms-encryption-scope Valfritt. Anger krypteringsomfånget för kryptering av begärandeinnehållet. Det här huvudet stöds i version 2020-12-06 och senare.
x-ms-tags Valfritt. Anger frågesträngskodade taggar på bloben. Taggar kopieras inte från kopieringskällan. Mer information finns i Kommentarer. Stöds i version 2019-12-12 och senare.
x-ms-copy-source-tag-option Valfritt. Möjliga värden är REPLACE och COPY (skiftlägeskänsliga). Standardvärdet är REPLACE.

Om COPY det anges kopieras taggarna från källbloben till målbloben. Källbloben måste vara privat och begäran måste ha behörighet att hämta blobtaggar åtgärden på källbloben och åtgärden Set Blob Tags på målbloben. Detta medför ett extra anrop till Get Blob Tags åtgärden på källkontot.

REPLACE anger taggar som rubriken x-ms-tags anger på målbloben. Om x-ms-tags det anges REPLACE och inga taggar anges inga taggar för målbloben. Om du anger COPY och x-ms-tags resulterar det i ett 409-fel (konflikt).

Stöds i version 2021-04-10 och senare.
x-ms-source-if-modified-since Valfritt. Ett DateTime värde. Ange den här villkorliga rubriken om du bara vill kopiera bloben om källbloben har ändrats sedan det angivna datumet/tiden. Om källbloben inte har ändrats returnerar Blob Storage statuskod 412 (förhandsvillkoret misslyckades). Du kan inte ange det här huvudet om källan är en Azure-fil.
x-ms-source-if-unmodified-since Valfritt. Ett DateTime värde. Ange den här villkorliga rubriken för att kopiera bloben endast om källbloben inte har ändrats sedan det angivna datumet/tiden. Om källbloben har ändrats returnerar Blob Storage statuskod 412 (förhandsvillkoret misslyckades). Du kan inte ange det här huvudet om källan är en Azure-fil.
x-ms-source-if-match Valfritt. Ett ETag värde. Ange den här villkorsstyrda rubriken om du bara vill kopiera källbloben om dess ETag värde matchar det angivna värdet. Om värdena inte matchar returnerar Blob Storage statuskod 412 (förhandsvillkoret misslyckades). Du kan inte ange det här huvudet om källan är en Azure-fil.
x-ms-source-if-none-match Valfritt. Ett ETag värde. Ange den här villkorsstyrda rubriken för att endast kopiera bloben om dess ETag värde inte matchar det angivna värdet. Om värdena är identiska returnerar Blob Storage statuskod 412 (förutsättningen misslyckades). Du kan inte ange det här huvudet om källan är en Azure-fil.
If-Modified-Since Valfritt. Ett DateTime värde. Ange den här villkorliga rubriken om du bara vill kopiera bloben om målbloben har ändrats sedan det angivna datumet/tiden. Om målbloben inte har ändrats returnerar Blob Storage statuskod 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 statuskoden 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 endast kopiera bloben om det angivna ETag värdet matchar ETag värdet för en befintlig målblob. Om värdena inte matchar 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 villkorsstyrda rubriken för att endast kopiera bloben 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 statuskoden 412 (förhandsvillkoret misslyckades).
x-ms-copy-source:name Obligatoriskt. Anger URL:en för källbloben. Värdet kan vara en URL som är upp till 2 kibibyte (KiB) lång och som anger en blob. Värdet ska vara URL-kodat eftersom det visas i en begärande-URI. Källbloben måste antingen vara offentlig eller ha behörighet via en signatur för delad åtkomst. Om källbloben är offentlig krävs ingen auktorisering för att utföra åtgärden. Om storleken på källbloben är större än 256 MiB misslyckas begäran med ett 409-fel (konflikt). Blobtypen för källbloben måste vara blockblob. Här är några exempel på url:er för källobjekt:

- 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> Valfritt. Anger auktoriseringsschemat och signaturen för kopieringskällan. Mer information finns i Auktorisera begäranden till Azure Storage.
Endast systembäraren stöds för Microsoft Entra.
Den här rubriken stöds i version 2020-10-02 och senare.
x-ms-requires-sync:true Obligatoriskt. Anger att det här är en synkron Copy Blob From URL åtgärd i stället för en asynkron Copy Blob åtgärd.
x-ms-source-content-md5 Valfritt. Anger en MD5-hash för blobinnehållet från URI:n. Den här hashen används för att verifiera blobens integritet vid transport av data från URI:n. När det här huvudet har angetts jämför lagringstjänsten hash-värdet för det innehåll som har kommit från kopieringskällan med det här rubrikvärdet.

MD5-hashen lagras inte med bloben.

Om de två hashvärdena inte matchar misslyckas åtgärden med felkoden 400 (felaktig begäran).
x-ms-lease-id:<ID> Krävs om målbloben har ett aktivt lån. Låne-ID:t som angetts för det här huvudet måste matcha låne-ID:t för målbloben. Om begäran inte innehåller låne-ID:t eller om den inte är giltig misslyckas åtgärden med statuskod 412 (förhandsvillkoret misslyckades).

Om det här huvudet anges och målbloben för närvarande inte har ett aktivt lån misslyckas åtgärden med statuskod 412 (förhandsvillkoret misslyckades).

I version 2012-02-12 och senare måste det här värdet ange ett aktivt, oändligt lån för en leasad blob. Ett tidsbegränsat låne-ID misslyckas med statuskod 412 (förhandsvillkoret misslyckades).
x-ms-client-request-id Valfritt. Tillhandahåller ett klientgenererat, täckande värde med en 1-KiB-teckengräns som registreras i loggarna när loggningen konfigureras. 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.
x-ms-access-tier Valfritt. Anger den nivå som ska anges för målbloben. Det här huvudet är endast för sidblobar på ett Premium-konto med version 2017-04-17 och senare. En fullständig lista över nivåer som stöds finns i Premiumlagring med höga prestanda och hanterade diskar för virtuella datorer. Det här huvudet stöds i version 2018-11-09 och senare för blockblobar. Blockblobnivåindelning stöds på Blob Storage- eller Generell användning v2-konton. Giltiga värden är Hot, Cool, Coldoch Archive. Obs!Cold-nivån stöds för version 2021-12-02 och senare. Detaljerad information om blockblobnivåindelning finns i Lagringsnivåer för frekvent, lågfrekvent lagring och arkivlagring.
x-ms-file-request-intent Krävs om x-ms-copy-source headern är en Azure-fil-URL och x-ms-copy-source-authorization headern anger en OAuth-token. Acceptabelt värde är backup. Det här huvudet anger att Microsoft.Storage/storageAccounts/fileServices/readFileBackupSemantics/action eller Microsoft.Storage/storageAccounts/fileServices/writeFileBackupSemantics/action ska beviljas om de ingår i RBAC-principen som tilldelats den identitet som är auktoriserad med hjälp av x-ms-copy-source-authorization-huvudet. Tillgänglig för version 2025-07-05 och senare.

begäranens innehåll

Ingen.

Svar

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

Statuskod

En lyckad åtgärd returnerar statuskoden 202 (godkänd).

Information om statuskoder finns i Status och felkoder.

Svarsrubriker

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

Svarsrubrik Beskrivning
ETag Om kopieringen är klar innehåller ETag värdet för målbloben. Om kopian inte är klar innehåller värdet för den ETag tomma bloben som skapades i början av kopian.

Värdet ETag anges inom citattecken.
Last-Modified Returnerar datum/tid då kopieringsåtgärden till målbloben slutfördes.
x-ms-request-id Identifierar unikt den begäran som gjordes. Du kan använda den 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 UTC-datum/tid-värde som anger den tid då tjänsten skickade svaret.
x-ms-copy-id: <id> Strängidentifierare för den här kopieringsåtgärden.
x-ms-copy-status: <success> Anger tillståndet för kopieringsåtgärden. Värdet för success innebär att åtgärden har slutförts.
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 och värdet är högst 1 024 synliga ASCII-tecken. Om x-ms-client-request-id huvudet inte finns i begäran visas inte det här huvudet i svaret.
x-ms-request-server-encrypted: true/false Ange till true om innehållet i begäran har krypterats via den angivna algoritmen. Annars är falsevärdet .
x-ms-encryption-scope Returneras om begäran använde ett krypteringsomfång, så att klienten kan se till att innehållet i begäran krypteras via krypteringsomfånget.

Svarsdel

Ingen.

Exempelsvar

Följande är ett exempelsvar för en begäran om att kopiera en blob:

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: 2018-03-28  
x-ms-copy-id: 1f812371-a41d-49e6-b123-f4b542e851c5  
x-ms-copy-status: success  
Date: <date>  
  

Auktorisering

Auktorisering krävs när du anropar en dataåtkomståtgärd i Azure Storage. I följande tabell beskrivs hur mål- och källobjekt för en Copy Blob From URL åtgärd kan auktoriseras:

Objekttyp Auktorisering av Microsoft Entra-ID Auktorisering av signatur för delad åtkomst (SAS) Auktorisering med delad nyckel (eller Shared Key Lite)
Blob för målblock Ja Ja Ja
Källblockblob i samma lagringskonto Ja Ja Ja
Källblockblob i ett annat lagringskonto Nej Ja Nej

Om en begäran anger taggar i begärandehuvudet måste anroparen uppfylla auktoriseringskraven för x-ms-tagsåtgärden Set Blob Tags .

Du kan auktorisera åtgärden Copy Blob From URL enligt beskrivningen nedan. Observera att en källblob i ett annat lagringskonto måste auktoriseras separat via SAS-token med läsbehörighet (r). Mer information om auktorisering av källblob finns 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 av 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, huvudnamn för programtjänsten eller en hanterad Azure-identitet. Säkerhetsprincipen 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 den Copy Blob From URL åtgärden och den minst privilegierade inbyggda Azure RBAC-rollen som innehåller den här åtgärden:

Målblob

Källblob i samma lagringskonto

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

Anmärkningar

Käll- och målbloben för en Copy Blob From URL åtgärd måste vara en blockblob.

I version 2020-10-02 och senare stöds Microsoft Entra-auktorisering för kopieringsåtgärdens källa.

Åtgärden Copy Blob From URL kopierar alltid hela källbloben. Kopiering av ett intervall med byte eller en uppsättning block stöds inte.

Du kan kopiera en källblob till en målblob som har ett annat namn. Målbloben kan vara en befintlig blockblob, eller så kan det vara en ny blob som kopieringsåtgärden skapar.

När du kopierar från en blockblob kopieras alla allokerade block och deras block-ID:t. Ogenomlästa block kopieras inte. I slutet av kopieringsåtgärden har målbloben samma allokerade blockantal som källan.

Värdet ETag för en blockblob ändras när Copy Blob From URL åtgärden startar och när åtgärden slutförs.

Kopiera blobegenskaper och metadata

När en blockblob kopieras kopieras följande systemegenskaper till målbloben med samma värden:

  • Content-Type

  • Content-Encoding

  • Content-Language

  • Content-Length

  • Cache-Control

  • Content-MD5

  • Content-Disposition

Källblobens allokerade blockeringslista kopieras också till målbloben. Eventuella ogenomlästa block kopieras inte.

Målbloben har alltid samma storlek som källbloben, så värdet Content-Length för rubriken för målbloben matchar värdet för rubriken för källbloben.

x-ms-tags Om rubriken innehåller taggar för målbloben måste de vara frågesträngskodade. Taggnycklar och värden måste överensstämma med de namngivnings- och längdkrav som anges i åtgärden Set Blob Tags .

Rubriken x-ms-tags kan innehålla upp till 2 kilobitar taggar. Om du behöver fler taggar använder du åtgärden Set Blob Tags .

x-ms-tags Om rubriken inte innehåller taggar kopieras inte taggar från källbloben.

Kopiera en hyrd blob

Åtgärden Copy Blob From URL läser bara från källbloben, så lånetillståndet för källbloben spelar ingen roll.

Fakturering

Prisbegäranden kan komma från klienter som använder Blob Storage-API:er, antingen direkt via BLOB Storage REST API eller från ett Azure Storage-klientbibliotek. Dessa begäranden ackumulerar avgifter per transaktion. Typen av transaktion påverkar hur kontot debiteras. Lästransaktioner ackumuleras till exempel till en annan faktureringskategori än skrivtransaktioner. I följande tabell visas faktureringskategorin för Copy Blob From URL begäranden baserat på lagringskontotypen:

Verksamhet Typ av lagringskonto Faktureringskategori
Kopiera blob från URL (målkonto1) Premium-blockblob
Standard generell användning v2
Standard allmän användning v1
Skrivåtgärder
Kopiera blob från URL (källkonto2) Premium-blockblob
Standard generell användning v2
Standard allmän användning v1
Läsåtgärder

1Målkontot debiteras för en transaktion för att initiera skrivning.
2Källkontot medför en transaktion för varje läsbegäran till källobjektet.

Mer information om priser för de angivna faktureringskategorierna finns i Prissättning för Azure Blob Storage.

Dessutom, om käll- och målkontona finns i olika regioner (till exempel USA, norra och USA, södra), debiteras bandbredden som du använder för att överföra begäran till källlagringskontot som utgående. Utgående mellan konton inom samma region är kostnadsfri.

När du kopierar en källblob till en målblob som har ett annat namn i samma konto använder du ytterligare lagringsresurser för den nya bloben. Kopieringsåtgärden resulterar sedan i en avgift mot lagringskontots kapacitetsanvändning för dessa ytterligare resurser.

Se även

Auktorisera begäranden till Azure Storage
Status och felkoder
Blob Storage-felkoder
Förstå hur ögonblicksbilder ackumulerar avgifter