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å containern och myblob med namnet på målbloben.
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 för 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 associerade med blobben. Om inga namn-/värdepar 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 frågesträngkodade 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 blobtaggar på källbloben och åtgärden Ange blobtaggar på målbloben. Detta medför ett extra anrop till Get Blob Tags åtgärden på 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 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 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 statuskoden 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 statuskoden 412 (villkoret 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 det här villkorsstyrda huvudet 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 statuskod 412 (villkoret 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 det här villkorsstyrda huvudet 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 (villkoret 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 (villkoret misslyckades). |
If-Unmodified-Since |
Valfritt. Ett DateTime värde. Ange det här villkorsstyrda huvudet 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 (villkoret 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 statuskod 412 (villkoret misslyckades). |
If-None-Match |
Valfritt. Ett ETag värde eller jokertecknet (*).Ange ett ETag värde för det här villkorsstyrda huvudet 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 Microsoft Entra. 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 false vä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
.
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 Copy Blob From URL
åtgärden och den minst privilegierade inbyggda Azure RBAC-rollen som innehåller den här åtgärden:
Målblob
- 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
Källblob i samma lagringskonto
- Azure RBAC-åtgärd:Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
- Minsta privilegierade inbyggda roll:Storage Blob Data Reader
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 Microsoft Entra auktorisering för kopieringsåtgärdens källa.
Åtgärden Copy Blob From URL
kopierar alltid hela källbloben. Det går inte att kopiera ett byteintervall eller en uppsättning block.
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 bekräftade block och deras block-ID:n. Ej tillåtna block kopieras inte. I slutet av kopieringsåtgärden har målbloben samma antal bekräftade block som källan.
Värdet ETag
för en blockblob ändras när åtgärden Copy Blob From URL
startas och när åtgärden är klar.
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 blocklista kopieras också till målbloben. Alla icke-utelämnade block kopieras inte.
Målbloben har alltid samma storlek som källbloben, så värdet Content-Length
för huvudet för målbloben matchar värdet för det huvudet för källbloben.
x-ms-tags
Om huvudet 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 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 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 till exempel tillfaller 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 mellan konton i 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 ackumuleras avgifter