Dela via


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 Put Block From URL-API:et tillsammans med Put Block List.

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

Begäran

Du kan skapa Put Blob From URL på 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 Valfri. 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äranderubrikerna 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 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. 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 vara inställt på 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 URL:en för källbloben. Värdet kan vara en URL på upp till 2 kibibyte (KiB) 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 5 000 MiB, eller om källan inte returnerar ett giltigt Content-Length värde, misslyckas begäran med statuskoden 409 (konflikt). 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> Valfri. Anger auktoriseringsschemat och signaturen för kopieringskällan. Mer information finns i Auktorisera begäranden till Azure Storage.

Note: Endast ett ägarschema stöds för Microsoft Entra.

Obs: Om källobjektet är offentligt tillgängligt eller om källobjektet finns i ett lagringskonto och du använder en SAS-token som skickas i x-ms-copy-source:namebehövs inte det här huvudet.

Den här rubriken stöds i versionerna 2020-10-02 och senare.
x-ms-blob-type: BlockBlob Krävs. Anger vilken typ av blob som ska skapas, vilket måste vara BlockBlob. Om blobtypen inte är BlockBlobmisslyckas åtgärden med statuskod 400 (felaktig begäran).
Content-Type Valfri. MIME-innehållstypen för bloben. Standardtypen är application/octet-stream.
Content-Encoding Valfri. Anger vilka innehållskodningar som har tillämpats på bloben. Det här värdet returneras till klienten när åtgärden Get 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 Valfri. Anger de naturliga språk som används av den här resursen.
Cache-Control Valfri. Blob Storage lagrar det här värdet men använder inte eller ändrar det.
x-ms-source-content-md5 Valfri. 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. 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 Valfri. 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 har angetts kontrollerar lagringstjänsten den hash som har anlänt mot den som skickades. Om de två hashvärdena inte matchar misslyckas åtgärden med felkoden 400 (felaktig begäran). Den här rubriken 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 Valfri. Anger blobens innehållstyp.
x-ms-blob-content-encoding Valfri. Anger blobens innehållskodning.
x-ms-blob-content-language Valfri. Anger blobens innehållsspråk.
x-ms-blob-content-md5 Valfri. Anger blobens MD5-hash.
x-ms-blob-cache-control Valfri. Anger blobens cachekontroll.
x-ms-meta-name:value Valfri. 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 Valfri. Krypteringsomfånget som ska användas för att kryptera innehållet i begäran. Den här rubriken stöds i version 2019-02-02 och senare.
x-ms-tags Valfri. Anger de angivna frågesträngskodade taggarna på bloben. Mer information finns i avsnittet Kommentarer. Stöds i version 2019-12-12 och senare.
x-ms-copy-source-tag-option Valfri. Möjliga värden är REPLACE eller COPY (skiftlägeskänslig). 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 blobtaggar på källbloben och Ange blobtaggar 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-huvudet på målbloben. Om REPLACE används och inga taggar anges av x-ms-tagsanges inga taggar på målbloben. Om du anger KOPIERA och x-ms-tags resulterar det i en 409 (konflikt).

Stöds i version 2021-04-10 och senare.
x-ms-copy-source-blob-properties Valfri. Anger beteendet för egenskaper för kopieringskällans blob. Om värdet är inställt på Truekopieras egenskaperna för källbloben till den nya bloben. Standardvärdet är True.
x-ms-source-if-modified-since Valfri. Ett DateTime värde. Ange den här villkorliga rubriken för att endast placera 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). Det går inte att ange det här huvudet om källan är en Azure Files-resurs.
x-ms-source-if-unmodified-since Valfri. Ett DateTime värde. Ange den här villkorliga rubriken för att endast placera bloben 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 Valfri. 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 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-none-match Valfri. Ett ETag-värde. Ange den här villkorliga rubriken för att endast placera bloben om dess ETag inte matchar det angivna värdet. Om värdena är identiska returnerar Blob Storage statuskod 412 (förutsättningen misslyckades). Det går inte att ange det här huvudet om källan är en Azure Files-resurs.
If-Modified-Since Valfri. Ett DateTime värde. Ange den här villkorliga rubriken för att endast placera bloben 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 Valfri. Ett DateTime värde. Ange den här villkorliga rubriken för att endast placera bloben 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 Valfri. Ett ETag-värde. Ange ett ETag-värde för det här villkorsstyrda huvudet för att endast placera bloben om det angivna ETag-värdet matchar det 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 statuskoden 412 (förhandsvillkoret misslyckades).
If-None-Match Valfri. Ett ETag-värde eller jokertecknet (*).

Ange ett ETag-värde för det här villkorsstyrda huvudet 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 statuskoden 412 (förhandsvillkoret misslyckades).
x-ms-lease-id:<ID> Krävs om blobben 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 Valfri. Anger blobens Content-Disposition-huvud. Tillgänglig för version 2013-08-15 och senare.

Fältet Content-Disposition-svarshuvud förmedlar ytterligare information om hur du bearbetar svarsnyttolasten och kan användas för att bifoga ytterligare metadata. Om huvudet till exempel är inställt på attachmentanger det att användaragenten 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 Get Blob och Get Blob Properties innehåller content-disposition-huvudet.
Origin Valfri. Anger ursprunget från vilket begäran utfärdas. 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 Valfri. Tillhandahåller ett klientgenererat, ogenomskinligt värde med en kibibytesteckengräns (KiB) som registreras i analysloggarna när loggning av lagringsanalys är aktiverad. 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 Valfri. Anger vilken nivå som ska anges på bloben. Giltiga värden för blockblobnivåer är Hot, Cool, Coldoch Archive. Obs: Cold-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 Valfri. Version 2023-08-03 och senare. Anger alternativet för förfallodatum för begäran. Mer information finns i ExpiryOption. Det här huvudet är giltigt för konton med hierarkiskt namnområde aktiverat.
x-ms-expiry-time Valfri. Version 2023-08-03 och senare. Anger den tid då blobben är inställd på att upphöra att gälla. Formatet för förfallodatum varierar beroende på x-ms-expiry-option. Mer information finns i ExpiryOption. Det här huvudet är giltigt för konton med hierarkiskt namnområde aktiverat.

Den här åtgärden stöder också användning av villkorsstyrda huvuden 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 rubriker 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 valfri.

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 den algoritm som ska användas för kryptering. Värdet för det här huvudet måste vara AES256.

Begärandetext

Ingen.

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

Svar

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

Svarsrubrik Beskrivning
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 If-Match begäranderubrik. 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/tid-vä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 den 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 UTC-datum/tid-värde 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 rubriken för ursprungsbegäran 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 över 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 är inställt på 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 ogenomskinligt DateTime värde som unikt identifierar bloben. Värdet för den här rubriken anger versionen av bloben och kan användas i efterföljande begäranden för att komma åt bloben.

Svarstext

Ingen.

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>  

Tillstånd

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

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

Viktig

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ä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 den 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.

Anmärkningar

Å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 Microsoft Entra-auktorisering för kopieringsåtgärdens källa.

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

Åtgärden Put Blob From URL kopierar alltid hela källbloben. Kopiering av ett intervall med byte eller en uppsättning block stöds inte. Om du vill utföra partiella uppdateringar läser du 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 incheckat 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 programmets metadata anges i begäran lagras det utan att källblobmetadata kopieras. Om du uttryckligen vill ange http-innehållshuvuden 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 storlek. Content-Length-huvudet måste vara 0 i Put Blob From URL begäran (eftersom det inte finns någon begärandetext) och innehållslängdsegenskapen för målbloben härleds från källans storlek.

Placera blob från anpassade URL-egenskaper

Put Blob From Url följer samma semantik som Put Blob för att ange anpassade egenskaper som är associerade med standard-HTTP-huvuden. 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 enligt Set Blob Tags. Dessutom kan x-ms-tags-huvudet 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-huvudet kopieras de inte från källbloben.

krypteringsomfång och kundspecifika nycklar

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

Om x-ms-copy-source-huvudet refererar till samma källblob som målbloben i begärande-URI:n utför Put Blob From URL åtgärden en synkron omskrivning på plats av blobben. 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 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 Put Blob From URL begäranden baserat på lagringskontotypen:

Operation Typ av lagringskonto Faktureringskategori
Placera blob från URL (målkontot1) Premium-blockblob
Standard generell användning v2
Standard generell användning v1
Skrivåtgärder
Placera blob från URL (källkontot2) 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 medför 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 inom samma region är kostnadsfri.

Slutligen använder skapandet av en ny blob med ett annat namn inom samma lagringskonto ytterligare lagringsresurser, 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 Prissättning för Azure Blob Storage.

Se även

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