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 valfri checkad blockblob i alla Azure-lagringskonton som antingen är offentliga eller auktoriserade med en signatur för delad åtkomst.

Förfrågan

Du kan skapa begäran på Copy Blob From URL följande sätt. Vi rekommenderar HTTPS. Ersätt myaccount med namnet på ditt lagringskonto, mycontainer med namnet på din container 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

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

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.

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. 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 -filen.

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 innehållet i begäran. Det här huvudet stöds i version 2020-12-06 och senare.
x-ms-tags Valfritt. Anger query-string-encoded-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 anges kopieras taggarna från källbloben till målbloben. Källbloben måste vara privat och begäran måste ha behörighet till åtgärden Hämta blobbtaggar på källbloben och åtgärden Ange blobtaggar på målbloben. Detta medför ett extra anrop till Get Blob Tags åtgärden för källkontot.

REPLACE anger taggar som x-ms-tags rubriken anger på målbloben. Om x-ms-tags anger REPLACE och inga taggar anges inga taggar på målbloben. Om du anger COPY och x-ms-tags resulterar 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 för att kopiera bloben endast 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 villkorliga rubriken för att kopiera källbloben endast om dess ETag värde matchar det angivna värdet. Om värdena inte matchar returnerar Blob Storage statuskoden 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 villkorliga rubriken för att kopiera bloben endast om dess ETag värde inte matchar det angivna värdet. Om värdena är identiska returnerar Blob Storage statuskod 412 (förhandsvillkoret 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 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 villkorliga rubriken för att kopiera bloben endast om det angivna ETag värdet matchar ETag värdet för en befintlig målblob. Om värdena inte matchar returnerar Blob Storage statuskoden 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 källblobens URL. Värdet kan vara en URL på upp till 2 kibibyte (KiB) som anger en blob. Värdet ska vara URL-kodat som det skulle visas i en begärande-URI. Källbloben måste antingen vara offentlig eller auktoriseras 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). Källblobens blobtyp måste vara blockblob. Här följer 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 schemabäraren stöds för Azure Active Directory.
Det här huvudet stöds i version 2020-10-02 och senare.
x-ms-requires-sync:true Krävs. Anger att detta ä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. Denna hash används för att verifiera blobens integritet under transport av data från URI:n. När det här huvudet anges jämför lagringstjänsten hashen för det innehåll som har anlänt 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 den här rubriken måste matcha låne-ID:t för målbloben. Om begäran inte innehåller låne-ID:t eller om det inte är giltigt misslyckas åtgärden med statuskod 412 (förhandsvillkoret misslyckades).

Om det här huvudet har angetts och målbloben för närvarande inte har något aktivt lån misslyckas åtgärden med statuskoden 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 hyrd blob. Ett låne-ID med begränsad varaktighet misslyckas med statuskod 412 (förhandsvillkoret misslyckades).
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.
x-ms-access-tier Valfritt. Anger den nivå som ska anges för målbloben. Den här rubriken är endast avsedd 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 Premium-lagring 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, Cold och Archive. Observera:Cold -nivån stöds för version 2021-12-02 och senare. Detaljerad information om blockblobnivåer finns i Lagringsnivåer för frekvent, lågfrekvent lagring och arkivlagring.

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 också innehålla ytterligare HTTP-standardhuvuden. Alla standardhuvuden överensstämmer med http/1.1-protokollspecifikationen.

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

Värdet ETag är inom citattecken.
Last-Modified Returnerar datum/tid då kopieringsåtgärden till målbloben slutfördes.
x-ms-request-id Identifierar begäran som gjordes unikt. 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 datum-/tidsvärde för UTC 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 kopieringsåtgärdens tillstånd. Värdet 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 x-ms-client-request-id för rubriken, om det finns i begäran och värdet är högst 1 024 synliga ASCII-tecken. Om huvudet x-ms-client-request-id inte finns i begäran kommer det här huvudet inte att finnas 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 har krypterats via krypteringsomfånget.

Själva svaret

Inga.

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 Microsoft Entra ID auktorisering Sas-auktorisering (signatur för delad åtkomst) Auktorisering av delad nyckel (eller lite för delad nyckel)
Målblockblob Ja Ja Yes
Källblockblob i samma lagringskonto Ja Ja Yes
Källblockblob i ett annat lagringskonto Inga Ja Inga

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

Du kan auktorisera åtgärden enligt beskrivningen Copy Blob From URL 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ällblobar finns 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 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 eller tjänstens huvudnamn ska kunna anropa 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.

Kommentarer

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 Azure Active Directory-auktorisering för kopieringsåtgärdens källa.

Åtgärden Copy Blob From URL kopierar alltid hela källbloben. Kopiering av ett byteintervall 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 en ny blob som kopieringsåtgärden skapar.

När du kopierar från en blockblob kopieras alla incheckade block och deras block-ID:t. Ogenomförda block kopieras inte. I slutet av kopieringsåtgärden har målbloben samma bekräftade 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 har slutförts.

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 checkade blockeringslista kopieras också till målbloben. Alla ogenomförda 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 Ange blobtaggar .

Rubriken x-ms-tags kan innehålla upp till 2 kilobit 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 taggarna 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 REST-API:et för Blob Storage 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:

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

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

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

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

När du kopierar en källblob till en målblob som har ett annat namn inom 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
Felkoder för Blob Storage
Förstå hur ögonblicksbilder påförs avgifter