Placera blockera från URL

Åtgärden Put Block From URL skapar ett nytt block som ska ingå i en blob där innehållet läses från en URL. Det här API:et är tillgängligt från och med version 2018-03-28 .

Förfrågan

Begäran Put Block From URL kan konstrueras på följande sätt. HTTPS rekommenderas. Ersätt myaccount med namnet på ditt lagringskonto:

URI för PUT-metodbegäran HTTP-version
https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=block&blockid=id HTTP/1.1

Emulerad Storage service-URI

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

URI för PUT-metodbegäran HTTP-version
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob?comp=block&blockid=id HTTP/1.1

Mer information finns i Använda Azure Storage Emulator för utveckling och testning.

URI-parametrar

Parameter Beskrivning
blockid Krävs. Ett giltigt Base64-strängvärde som identifierar blocket. Innan kodningen måste strängen vara mindre än eller lika med 64 byte.

För en viss blob måste längden på det värde som anges för blockid parametern ha samma storlek för varje block.

Observera att Base64-strängen måste vara URL-kodad.
timeout Valfritt. Parametern timeout uttrycks i sekunder. Mer information finns i Ange tidsgränser för Blob Service-åtgärder.

Rubriker för begäran

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

Begärandehuvud Description
Authorization Krävs. Anger auktoriseringsschema, kontonamn och signatur. Se Auktorisera begäranden Azure Storage för mer information.
Date eller x-ms-date Krävs. Anger Coordinated Universal Time (UTC) för begäran. Mer information finns i Authorize requests to 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 Services. För Put Block From URL måste versionen vara 2018-03-28 eller senare.
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 noll. Om längden inte är noll 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 med en längd på upp till 2 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 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. 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 Authorize requests to Azure Storage.
Endast systembjörn stöds för Azure Active Directory.
Det här huvudet stöds i versionerna 2020-10-02 och senare.
x-ms-source-range Valfritt. Laddar bara upp byte för bloben i käll-URL:en i det angivna intervallet. Om detta inte anges laddas hela källblobinnehållet upp som ett enda block. Mer information finns i Ange intervallrubrik för Blob Service-åtgärder.
x-ms-source-content-md5 Valfritt. En MD5-hash för blockinnehållet från URI:n. Den här hashen används för att verifiera blockets integritet under transport av data från URI:en. 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.

Observera att denna md5-hash inte lagras med bloben.

Om de två hash-koderna inte matchar misslyckas åtgärden med felkoden 400 (felaktig begäran).
x-ms-source-content-crc64 Valfritt. En CRC64-hash för blockinnehållet från URI:en. Den här hashen används för att verifiera blockets integritet under transport av data från URI:en. 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.

Observera att denna CRC64-hash inte lagras med bloben.

Om de två hash-koderna inte matchar misslyckas åtgärden med felkoden 400 (felaktig begäran).

Om både x-ms-source-content-md5 x-ms-source-content-crc64 - och -huvuden finns misslyckas begäran med 400 (felaktig begäran).

Det här huvudet stöds i versionerna 2019-02-02 eller senare.
x-ms-encryption-scope Valfritt. Anger krypteringsomfånget som ska användas för att kryptera källinnehållet. Det här huvudet stöds i versionerna 2019-02-02 eller senare.
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-client-request-id Valfritt. Tillhandahåller ett klientgenererat, täckande värde med en teckengräns på 1 KiB som registreras i analysloggarna när loggning av lagringsanalys är aktiverat. Användning av det här huvudet rekommenderas starkt för korrelering av aktiviteter på klientsidan med begäranden som tas emot av servern. Mer information finns i Om Storage Analytics-loggning och Azure Logging: Använda loggar för att spåra Storage begäranden.

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

Från och med version 2019-02-02 kan följande huvuden 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 huvuden) är valfri.

Begärandehuvud Beskrivning
x-ms-encryption-key Krävs. Den Base64-kodade AES-256-krypteringsnyckeln.
x-ms-encryption-key-sha256 Krävs. Base64-kodad SHA256-hash 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

Ingen begärandetext.

Exempelförfrågan

Request Syntax:  
PUT https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=block&blockid=AAAAAA%3D%3D HTTP/1.1  
  
Request Headers:  
x-ms-version: 2018-03-28  
x-ms-date: Sat, 31 Mar 2018 14:37:35 GMT    
Authorization: SharedKey myaccount:J4ma1VuFnlJ7yfk/Gu1GxzbfdJloYmBPWlfhZ/xn7GI=  
Content-Length: 0
x-ms-copy-source: https://myaccount.blob.core.windows.net/mycontainer/myblob
x-ms-source-range: bytes=0-499

Svarsåtgärder

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

Statuskod

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

Information om statuskoder finns i Status och Felkoder.

Svarsrubriker

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

Svarshuvud Description
Content-MD5 Det här huvudet returneras så att klienten kan kontrollera meddelandeinnehållets integritet. Värdet för det här huvudet beräknas av Blob Service. Det är inte nödvändigtvis samma värde som anges i begärandehuvudena. För versionerna 2019-02-02 eller senare returneras det här huvudet endast när begäran har det här huvudet.
x-ms-content-crc64 För version 2019-02-02 eller senare returneras det här huvudet så att klienten kan kontrollera meddelandeinnehållets integritet. Värdet för det här huvudet beräknas av Blob Service. Det är inte nödvändigtvis samma värde som anges i begärandehuvudena.

Det här huvudet returneras x-ms-source-content-md5 när rubriken inte finns i begäran.
x-ms-request-id Det här huvudet identifierar unikt den begäran som har gjorts och kan användas för felsökning av begäran. Mer information finns i Felsöka API-åtgärder.
x-ms-version Anger vilken version av blobtjänsten som används för att köra begäran.
Date Ett datum-/tidsvärde för UTC som genereras av tjänsten och som anger när svaret initierades.
x-ms-request-server-encrypted: true/false Version 2015-12-11 eller senare. Värdet för den här rubriken är inställt på om innehållet i blocket har true krypterats med den angivna algoritmen och false i annat fall.
x-ms-encryption-key-sha256 Version 2019-02-02 eller senare. Det här huvudet returneras om begäran använde en kundtilldelade 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 Version 2019-02-02 eller senare. Det här huvudet 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-client-request-id Det här huvudet 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 rubriken om det finns i begäran och värdet är högst x-ms-client-request-id 1 024 synliga ASCII-tecken. Om x-ms-client-request-id -huvudet inte finns i begäran kommer det här huvudet inte att finnas i svaret.

Exempelsvar

Response Status:  
HTTP/1.1 201 Created  
  
Response Headers:  
Transfer-Encoding: chunked  
x-ms-content-crc64: 77uWZTolTHU  
Date: Sat, 31 Mar 2018 23:47:09 GMT  
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0  

Auktorisering

Den här åtgärden kan anropas av kontoägaren och av vem som helst med en signatur för delad åtkomst som har behörighet att skriva till bloben eller dess container.

Kommentarer

Put Block From URL laddar upp ett block för framtida inkludering i en blockblob. En blockblob kan innehålla högst 50 000 block. Varje block kan ha olika storlek. Den maximala storleken för ett block som laddas upp med Put Block From URL är 100 MiB. Om du vill ladda upp större block (upp till 4 000 MiB) kan du se Put Block.

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

En blob kan ha högst 100 000 ogenomskända block vid en given tidpunkt. Om det högsta värdet överskrids returnerar tjänsten statuskod 409 (RequestEntityTooLargeBlockCountExceedsLimit).

I följande tabell beskrivs de maximala block- och blobstorlekar som tillåts av tjänstversionen.

Tjänstversion Maximal blockstorlek (via Placera block från URL) Maximal blobstorlek (via Placera blockeringslista) Maximal blobstorlek via en enda skrivåtgärd (via Placera blob från URL)
Version 2020-04-08 och senare 4 000 MiB Cirka 190,7 TiB (4 000 MiB X 50 000 block) 5 000 MiB (förhandsversion)
Versioner före 2020-04-08 100 MiB Cirka 4,75 TiB (100 MiB X 50 000 block) 256 MiB

När du har laddat upp en uppsättning block kan du skapa eller uppdatera bloben på servern från den här uppsättningen genom att anropa åtgärden Placera blockeringslista. Varje block i uppsättningen identifieras av ett block-ID som är unikt inom bloben. Block-ID:er är begränsade till en viss blob, så olika blobar kan ha block med samma ID: er.

Om du Put Block From URL anropar en blob som ännu inte finns skapas en ny blockblob med innehållslängden 0. Bloben räknas upp av List Blobs åtgärden om alternativet include=uncommittedblobs anges. Blocket eller blocken som du laddade upp har inte överförts förrän du Put Block List anropar den nya bloben. En blob som skapats på det här sättet underhålls på servern i en vecka. Om du inte har lagt till fler block eller insamlat block i bloben inom den tidsperioden, är bloben skräpinsamlad.

Ett block som har laddats upp med åtgärden blir inte en del av en Put Block From URL blob förrän den har genomförts med Put Block List . Innan anropas för att genomföra den nya eller uppdaterade bloben returnerar alla anrop till Get Blob blobinnehållet utan att det Put Block List ogenomsagde blocket inkluderas.

Om du laddar upp ett block som har samma block-ID som ett annat block som ännu inte har genomförts, kommer det senast uppladdade blocket med det ID:t att överföras vid nästa lyckade Put Block List åtgärd.

När Put Block List anropas, kommer alla ogenomlästa block som anges i blockeringslistan att anges som en del av den nya bloben. Eventuella ogenomlästa block som inte har angetts i blocklistan för bloben kommer att skräpinsamlas och tas bort från blobtjänsten. Eventuella ogenomlästa block kommer också att skräpinsamlas om det inte finns några lyckade anrop till eller på samma blob inom en vecka efter den Put Block From URL Put Block List senaste lyckade Put Block From URL åtgärden. Om Put Blob anropas på bloben kommer eventuella ogenomlästa block att skräpinsamlas.

Om bloben har ett aktivt lån måste klienten ange ett giltigt låne-ID för begäran för att kunna skriva ett block till bloben. Om klienten inte anger något låne-ID eller anger ett ogiltigt låne-ID returnerar Blob Service statuskod 412 (förhandsvillkoret misslyckades). Om klienten anger ett låne-ID men bloben inte har något aktivt lån returnerar blobtjänsten även statuskod 412 (förhandsvillkoret misslyckades).

För en viss blob måste alla block-ID:er ha samma längd. Om ett block laddas upp med ett block-ID med en annan längd än block-ID:n för eventuella befintliga ej inlästa block, returnerar tjänsten felsvarskod 400 (felaktig begäran).

Anrop Put Block From URL uppdaterar inte tiden för senaste ändring av en befintlig blob.

Anrop Put Block From URL på en sidblob returnerar ett fel.

Anrop Put Block From URL till en arkiverad blob returnerar ett fel och Hot / Cool på bloben ändras inte blobnivån.

Se även