Placera blob från URL

Åtgärden Put Blob From URL skapar en ny blockblob där innehållet i bloben läse från en angiven URL. Det här API:et är tillgängligt från och med version 2020-04-08.

Partiella uppdateringar stöds inte med Put Blob From URL. Innehållet i en befintlig blob skrivs över med innehållet i den nya bloben. Om du vill utföra partiella uppdateringar av en blockblobs innehåll med hjälp av en käll-URL använder du API:et Put Blob From URL tillsammans med Put Block List.

Storleken på källbloben kan vara upp till en maximal längd på 256 mebibyte (MiB).

Förfrågan

Du kan skapa på Put Blob From URL följande sätt. Vi rekommenderar att du använder HTTPS. Ersätt myaccount med namnet på ditt lagringskonto:

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

Emulerad lagringstjänstbegäran

När du gör en begäran mot den emulerade lagringstjänsten anger du emulatorns värdnamn och blobtjänstporten som 127.0.0.1:10000följt av det emulerade lagringskontonamnet:

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

Lagringsemulatorn stöder endast blobstorlekar på upp till 2 gibibyte (GiB).

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

URI-parametrar

Följande ytterligare parametrar kan anges på begärande-URI:n:

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

Begärandehuvuden

De obligatoriska och valfria begärandehuvudena beskrivs i följande tabell:

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. 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.
Content-Length Krävs. Anger antalet byte som överförs i begärandetexten. Värdet för det här huvudet måste anges till 0. När längden inte är 0 misslyckas åtgärden med statuskoden 400 (felaktig begäran).
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, eller om källan inte returnerar ett giltigt Content-Length värde, misslyckas begäran med statuskoden 409 (konflikt). 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ärare stöds för Azure Active Directory.
Det här huvudet stöds i version 2020-10-02 och senare.
x-ms-blob-type: BlockBlob Krävs. Anger vilken typ av blob som ska skapas, som måste vara BlockBlob. Om blobtypen inte BlockBlobär misslyckas åtgärden med statuskoden 400 (felaktig begäran).
Content-Type Valfritt. MIME-innehållstypen för bloben. Standardtypen är application/octet-stream.
Content-Encoding Valfritt. Anger vilka innehållskodningar som har tillämpats på bloben. Det här värdet returneras till klienten när åtgärden Hämta blob utförs på blobresursen. När det här värdet returneras kan klienten använda det för att avkoda blobinnehållet.
Content-Language Valfritt. Anger de naturliga språk som används av den här resursen.
Cache-Control Valfritt. Blob Storage lagrar det här värdet men använder eller ändrar det inte.
x-ms-source-content-md5 Valfritt. 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. Om det här huvudet utelämnas genererar Blob Storage en MD5-hash.

Om de två hashvärdena inte matchar misslyckas åtgärden med felkoden 400 (felaktig begäran).
x-ms-content-crc64 Valfritt. En CRC64-hash för blobinnehållet. Den här hashen används för att verifiera blobens integritet under transporten. När det här huvudet anges kontrollerar lagringstjänsten hashen som har anlänt mot den som skickades. Om de två hashvärdena inte matchar misslyckas åtgärden med felkoden 400 (felaktig begäran). Det här huvudet stöds i version 02-02-2019 och senare.

Om både Content-MD5- och x-ms-content-crc64-huvuden finns misslyckas begäran med 400 (felaktig begäran).
x-ms-blob-content-type Valfritt. Anger blobens innehållstyp.
x-ms-blob-content-encoding Valfritt. Anger blobens innehållskodning.
x-ms-blob-content-language Valfritt. Anger blobens innehållsspråk.
x-ms-blob-content-md5 Valfritt. Anger blobens MD5-hash.
x-ms-blob-cache-control Valfritt. Anger blobens cachekontroll.
x-ms-meta-name:value Valfritt. Namn/värde-par som är associerade med bloben som metadata.

Obs! Från och med version 2009-09-19 måste metadatanamn följa namngivningsreglerna för C#-identifierare.
x-ms-encryption-scope Valfritt. Krypteringsomfånget som ska användas för att kryptera innehållet i begäran. Det här huvudet stöds i version 2019-02-02 och senare.
x-ms-tags Valfritt. Anger de angivna query-string-kodade taggarna på bloben. Mer information finns i avsnittet Kommentarer . Stöds i version 2019-12-12 och senare.
x-ms-copy-source-tag-option Valfritt. Möjliga värden är REPLACE eller COPY (skiftlägeskänsligt). 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 att hämta blobbtaggar för källbloben och ange blobbtaggar på målbloben. Detta medför ett extra anrop till åtgärden Hämta blobtaggar på källkontot.

REPLACE anger taggar som anges av x-ms-tags rubriken på målbloben. Om REPLACE används och inga taggar anges av x-ms-tagsanges inga taggar på målbloben. Om du anger COPY och x-ms-tags resulterar i en 409 (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 placera 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). Det går inte att ange det här huvudet om källan är en Azure Files resurs.
x-ms-source-if-unmodified-since Valfritt. Ett DateTime värde. Ange den här villkorliga rubriken för att placera 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). Det går inte att ange det här huvudet om källan är en Azure Files resurs.
x-ms-source-if-match Valfritt. Ett ETag-värde. Ange den här villkorliga rubriken för att endast placera källbloben om dess ETag matchar det angivna värdet. Om ETag-värdena inte matchar returnerar Blob Storage statuskoden 412 (förhandsvillkoret misslyckades). Det går inte att ange det här huvudet om källan är en Azure Files resurs.
x-ms-source-if-none-match Valfritt. Ett ETag-värde. Ange den här villkorliga rubriken för att placera bloben endast om dess ETag inte matchar det angivna värdet. Om värdena är identiska returnerar Blob Storage statuskod 412 (förhandsvillkoret misslyckades). Det går inte att ange det här huvudet om källan är en Azure Files resurs.
If-Modified-Since Valfritt. Ett DateTime värde. Ange den här villkorliga rubriken för att placera 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 placera 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 endast placera bloben om det angivna ETag-värdet matchar ETag värdet för en befintlig målblob. Om ETag för målbloben inte matchar den ETag som angetts 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 endast placera 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 statuskod 412 (förhandsvillkoret misslyckades).
x-ms-lease-id:<ID> Krävs om bloben har ett aktivt lån. Om du vill utföra den här åtgärden på en blob med ett aktivt lån anger du det giltiga låne-ID:t för det här huvudet.
x-ms-blob-content-disposition Valfritt. Anger blobens Content-Disposition sidhuvud. Tillgänglig för version 2013-08-15 och senare.

Fältet Content-Disposition för svarshuvud förmedlar ytterligare information om hur du bearbetar svarsnyttolasten och kan användas för att bifoga ytterligare metadata. Om rubriken till attachmentexempel är inställd på anger det att user-agent inte ska visa svaret. I stället bör dialogrutan Spara som visas med ett annat filnamn än det angivna blobnamnet.

Svaret från åtgärderna Hämta blob och Hämta blobegenskaper innehåller content-disposition -huvudet.
Origin Valfritt. Anger ursprunget som begäran utfärdas från. Förekomsten av det här huvudet resulterar i CORS-huvuden (cross-origin resource sharing) i svaret. Mer information finns i CORS-stöd för Azure Storage-tjänsterna.
x-ms-client-request-id Valfritt. Tillhandahåller ett klientgenererat, täckande värde med en teckengräns på 1 kibibyte (KiB) som registreras i analysloggarna när loggning av lagringsanalys är aktiverat. 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 vilken nivå som ska anges för bloben. Giltiga värden för blockblobnivåer är Hot, Cool, Coldoch Archive. ColdObs! Nivån stöds för version 2021-12-02 och senare. Hot, Cooloch Archive stöds för version 2018-11-09 och senare. Mer information om blockblobnivåindelning finns i Lagringsnivåer för frekvent, lågfrekvent lagring och arkivlagring.
x-ms-expiry-option Valfritt. Version 2023-08-03 och senare. Anger alternativet för förfallodatum för begäran. Mer information finns i ExpiryOption. Den här rubriken är giltig för konton med hierarkisk namnrymd aktiverad.
x-ms-expiry-time Valfritt. Version 2023-08-03 och senare. Anger den tid då bloben är inställd på att förfalla. Formatet för förfallodatum varierar beroende på x-ms-expiry-option. Mer information finns i ExpiryOption. Den här rubriken är giltig för konton med hierarkisk namnrymd aktiverad.

Den här åtgärden stöder också användning av villkorsstyrda rubriker för att endast skriva bloben om ett visst villkor uppfylls. Mer information finns i Ange villkorsstyrda rubriker för Blob Storage-åtgärder.

Begärandehuvuden (krypteringsnycklar som tillhandahålls av kunden)

Följande huvuden kan anges i begäran om att kryptera en blob med en nyckel som tillhandahålls av kunden. Kryptering med en nyckel som tillhandahålls av kunden (och motsvarande uppsättning rubriker) är valfritt.

Begärandehuvud Beskrivning
x-ms-encryption-key Krävs. Den Base64-kodade AES-256-krypteringsnyckeln.
x-ms-encryption-key-sha256 Krävs. Den Base64-kodade SHA256-hashen för krypteringsnyckeln.
x-ms-encryption-algorithm: AES256 Krävs. Anger vilken algoritm som ska användas för kryptering. Värdet för det här huvudet måste vara AES256.

Begärandetext

Inga.

Exempelbegäran

I följande exempel visas en begäran om att skapa en blockblob:

Request Syntax:  
PUT https://myaccount.blob.core.windows.net/mycontainer/myblockblob HTTP/1.1  
  
Request Headers:  
x-ms-version: 2020-04-08  
x-ms-date: <date>  
Content-Type: text/plain; charset=UTF-8  
x-ms-blob-content-disposition: attachment; filename="fname.ext"  
x-ms-blob-type: BlockBlob  
x-ms-meta-m1: v1  
x-ms-meta-m2: v2  
x-ms-copy-source: https://myaccount.blob.core.windows.net/mycontainer/myblob
x-ms-expiry-option: RelativeToNow
x-ms-expiry-time: 30000
Authorization: SharedKey myaccount:YhuFJjN4fAR8/AmBrqBz7MG2uFinQ4rkh4dscbj598g=  
Content-Length: 0

Svarsåtgärder

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

Statuskod

En lyckad åtgärd returnerar statuskoden 201 (skapad).

Mer 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 HTTP-standardhuvuden. Alla standardhuvuden överensstämmer med http/1.1-protokollspecifikationen.

Svarsrubrik Description
ETag ETag innehåller ett värde som klienten kan använda för att utföra villkorsstyrda PUT åtgärder med hjälp av begärandehuvudet If-Match . ETag-värdet omges av citattecken.
Last-Modified Datum/tid då bloben senast ändrades. Datumformatet följer RFC 1123. Mer information finns i Representera datum-/tidsvärden i rubriker.

Alla skrivåtgärder på bloben (inklusive uppdateringar av blobens metadata eller egenskaper) ändrar blobens senast ändrade tid.
Content-MD5 Returneras för en blockblob så att klienten kan kontrollera integriteten för meddelandeinnehållet. Det Content-MD5 returnerade värdet beräknas av Blob Storage. Det här huvudet returneras även när begäran inte innehåller Content-MD5 eller x-ms-blob-content-md5 rubriker.
x-ms-content-crc64 Returneras för en blockblob så att klienten kan kontrollera integriteten för meddelandeinnehållet. Det x-ms-content-crc64 returnerade värdet beräknas av Blob Storage. Den här rubriken returneras alltid.
x-ms-request-id Identifierar begäran som gjordes unikt och du kan använda den för att felsöka begäran. Mer information finns i Felsöka API-åtgärder.
x-ms-version Den version av Blob Storage som användes för att köra begäran.
Date Ett DATUM-/tidsvärde för UTC som genereras av tjänsten, vilket anger den tid då svaret initierades.
Access-Control-Allow-Origin Returneras om begäran innehåller ett Origin huvud och CORS är aktiverat med en matchande regel. Det här huvudet returnerar värdet för ursprungsbegärandehuvudet om det finns en matchning.
Access-Control-Expose-Headers Returneras om begäran innehåller ett Origin huvud och CORS är aktiverat med en matchande regel. Returnerar listan med svarshuvuden som ska exponeras för klienten eller utfärdaren av begäran.
Access-Control-Allow-Credentials Returneras om begäran innehåller ett Origin huvud och CORS är aktiverat med en matchande regel som inte tillåter alla ursprung. Det här huvudet är inställt på true.
x-ms-request-server-encrypted: true/false Värdet för det här huvudet anges till true om innehållet i begäran har krypterats med hjälp av den angivna algoritmen. Annars är värdet inställt på false.
x-ms-encryption-key-sha256 Returneras om begäran använde en kundtilldelad nyckel för kryptering, så att klienten kan se till att innehållet i begäran krypteras med hjälp av den angivna nyckeln.
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 med hjälp av krypteringsomfånget.
x-ms-version-id: <DateTime> Returnerar ett täckande DateTime värde som unikt identifierar bloben. Värdet för den här rubriken anger blobens version och kan användas i efterföljande begäranden för att få åtkomst till bloben.

Själva svaret

Inga.

Exempelsvar

Response Status:  
HTTP/1.1 201 Created  
  
Response Headers:  
Transfer-Encoding: chunked  
Content-MD5: sQqNsWTgdUEFt6mb5y4/5Q==  
x-ms-content-crc64: 77uWZTolTHU
Date: <date>  
ETag: "0x8CB171BA9E94B0B"  
Last-Modified: <date>  
Access-Control-Allow-Origin: http://contoso.com  
Access-Control-Expose-Headers: Content-MD5  
Access-Control-Allow-Credentials: True  
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0  
x-ms-version-id: <DateTime>  

Auktorisering

Auktorisering krävs när du anropar en dataåtkomståtgärd i Azure Storage. Du kan auktorisera åtgärden enligt beskrivningen Put Blob From URL nedan.

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

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 Put Blob From URL å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 hjälp av Azure RBAC finns i Tilldela en Azure-roll för åtkomst till blobdata.

Kommentarer

Åtgärden Put Blob From URL stöds från och med version 2020-04-08.

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

Källbloben kan vara av valfri typ, inklusive en blockblob, tilläggsblob eller sidblob. Målbloben måste dock vara en blockblob.

Den högsta tillåtna block- och blobstorleken, efter tjänstversion, beskrivs i följande tabell:

Version Maximal blockstorlek (via Put Blob From URL) Maximal blobstorlek (via Put Block List) Maximal blobstorlek för en enda skrivåtgärd (via Put Blob From URL)
Version 2020-04-08 och senare 4 000 MiB Cirka 190,7 tebibyte (TiB) (4 000 MiB-× 50 000 block) 5 000 MiB
Tidigare versioner än 2020-04-08 100 MiB Cirka 4,75 TiB (100 MiB × 50 000 block) 256 MiB

Åtgärden Put Blob From URL kopierar alltid hela källbloben. Det går inte att kopiera ett byteintervall eller en uppsättning block. Information om hur du utför partiella uppdateringar finns i Placera blockera från URL. Målbloben kan vara en befintlig blockblob eller en ny blob som skapas av åtgärden.

När du använder en blockblob som källobjekt kopieras allt allokerat blobinnehåll. Blocklistan bevaras dock inte och icke-utelämnade block kopieras inte. Innehållet i målbloben är identiskt med källans, men listan över bekräftade block bevaras inte.

Placera blobegenskaper och metadata

När du skapar en blockblob från en kopieringskälla kopieras standardblobegenskaperna som standard från källbloben. Om programmetadata anges i begäran lagras de utan att källblobmetadata kopieras. Om du uttryckligen vill ange http-innehållsrubriker kan du ange motsvarande rubrik i begäran.

  • Content-Type

  • Content-Encoding

  • Content-Length

  • Cache-Control

  • Content-Disposition

Målblobens storlek matchar alltid källblobens. Huvudet Content-Length måste vara 0 i Put Blob From URL begäran (eftersom det inte finns någon begärandetext) och egenskapen innehållslängd för målbloben härleds från källans storlek.

Placera anpassade egenskaper för blob från URL

Put Blob From Url följer samma semantik som för att ange anpassade egenskaper som Put Blob är associerade med http-standardhuvuden. Mer information finns i Anpassade blobegenskaper

Blobindextaggar

Om taggar för målbloben anges i x-ms-tags huvudet måste de vara frågesträngskodade. Taggnycklar och värden måste överensstämma med namngivnings- och längdkraven som anges i Set Blob Tags. x-ms-tags Dessutom kan rubriken innehålla upp till 2 KiB-taggar. Om fler taggar krävs använder du åtgärden Set Blob Tags .

Om taggar inte anges i x-ms-tags rubriken kopieras de inte från källbloben.

Krypteringsomfång och nycklar som tillhandahålls av kunden

API:et Put Blob From URL stöder både krypteringsomfång och kundspecifika nycklar med hjälp av rubrikerna x-ms-encryption-scope och x-ms-encryption-key .

x-ms-copy-source Om rubriken refererar till samma källblob som målbloben i begärande-URIPut Blob From URL:n utför åtgärden en synkron omskrivning på plats av bloben. Detta gör det möjligt att skriva om en blob för att använda en annan krypteringsnyckel eller krypteringsomfång.

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 Put Blob From URL begäranden baserat på lagringskontotypen:

Åtgärd Typ av lagringskonto Faktureringskategori
Placera blob från URL (målkonto1) Premium-blockblob
Standard generell användning v2
Standard generell användning v1
Skrivåtgärder
Placera 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.

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

Slutligen används ytterligare lagringsresurser för att skapa en ny blob med ett annat namn inom samma lagringskonto, så åtgärden resulterar i en avgift mot lagringskontots kapacitetsanvändning för dessa ytterligare resurser.

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

Se även

Auktorisera begäranden till AzureStorage-status och felkoderBlob Service-felkoderAnge tidsgränser för blobtjänståtgärder