Kopiera en blob från en källobjekt-URL med JavaScript
Den här artikeln visar hur du kopierar en blob från en källobjekt-URL med hjälp av Azure Storage-klientbiblioteket för JavaScript. Du kan kopiera en blob från en källa inom samma lagringskonto, från en källa i ett annat lagringskonto eller från alla tillgängliga objekt som hämtas via HTTP GET-begäran på en viss URL.
De klientbiblioteksmetoder som beskrivs i den här artikeln använder rest-API-åtgärderna Put Blob From URL och Put Block From URL . Dessa metoder är att föredra för kopieringsscenarier där du vill flytta data till ett lagringskonto och ha en URL för källobjektet. Information om kopieringsåtgärder där du vill ha asynkron schemaläggning finns i Kopiera en blob med asynkron schemaläggning med JavaScript.
Förutsättningar
- Exemplen i den här artikeln förutsätter att du redan har ett projekt konfigurerat för att fungera med Azure Blob Storage-klientbiblioteket för JavaScript. Mer information om hur du konfigurerar projektet, inklusive paketinstallation, import av moduler och skapande av ett auktoriserat klientobjekt för att arbeta med dataresurser finns i Kom igång med Azure Blob Storage och JavaScript.
- Auktoriseringsmekanismen måste ha behörighet att utföra en kopieringsåtgärd. Mer information finns i auktoriseringsvägledningen för följande REST API-åtgärd:
Om att kopiera blobar från en källobjekt-URL
Åtgärden Put Blob From URL
skapar en ny blockblob där innehållet i bloben läse från en viss URL. Åtgärden slutförs synkront.
Källan kan vara valfritt objekt som kan hämtas via en HTTP GET-standardbegäran på den angivna URL:en. Detta omfattar blockblobar, tilläggsblobar, sidblobar, blobögonblicksbilder, blobversioner eller alla tillgängliga objekt i eller utanför Azure.
När källobjektet är en blockblob 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.
Målet är alltid en blockblob, antingen en befintlig blockblob eller en ny blockblob som skapats av åtgärden. Innehållet i en befintlig blob skrivs över med innehållet i den nya bloben.
Å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 av en blockblobs innehåll med hjälp av en käll-URL använder du API:et Put Block From URL tillsammans med Put Block List (Placera blockeringslista).
Mer information om åtgärden Put Blob From URL
, inklusive begränsningar för blobstorlek och faktureringsöverväganden, finns i Lägga till blob från URL-kommentarer.
Kopiera en blob från en url för källobjekt
Det här avsnittet ger en översikt över metoder som tillhandahålls av Azure Storage-klientbiblioteket för JavaScript för att utföra en kopieringsåtgärd från en källobjekt-URL.
Följande metod omsluter rest-API-åtgärden Put Blob From URL och skapar en ny blockblob där innehållet i bloben läss från en viss URL:
Dessa metoder är att föredra för scenarier där du vill flytta data till ett lagringskonto och ha en URL för källobjektet.
För stora objekt kan du välja att arbeta med enskilda block. Följande metod omsluter rest-API-åtgärden Put Block From URL . Den här metoden skapar ett nytt block som ska checkas in som en del av en blob där innehållet läse från en käll-URL:
Kopiera en blob från en källa i Azure
Om du kopierar en blob från en källa i Azure kan åtkomst till källbloben auktoriseras via Microsoft Entra-ID, en signatur för delad åtkomst (SAS) eller en kontonyckel.
I följande exempel visas ett scenario för kopiering från en källblob i Azure:
async function copyFromSourceInAzure(sourceBlob, destinationBlob) {
// Get the source blob URL and create the destination blob
await destinationBlob.syncUploadFromURL(sourceBlob.url);
}
Metoden syncUploadFromURL kan också acceptera en BlockBlobSyncUploadFromURLOptions-parameter för att ange ytterligare alternativ för åtgärden.
Kopiera en blob från en källa utanför Azure
Du kan utföra en kopieringsåtgärd på alla källobjekt som kan hämtas via HTTP GET-begäran på en viss URL, inklusive tillgängliga objekt utanför Azure. I följande exempel visas ett scenario för att kopiera en blob från en URL för tillgängligt källobjekt.
async function copyFromExternalSource(sourceUrl, destinationBlob) {
// Create the destination blob from the source URL
await destinationBlob.syncUploadFromURL(sourceUrl);
}
Resurser
Mer information om hur du kopierar blobar med hjälp av Azure Blob Storage-klientbiblioteket för JavaScript finns i följande resurser.
Kodexempel
- Visa JavaScript - och TypeScript-kodexempel från den här artikeln (GitHub)
REST API-åtgärder
Azure SDK för JavaScript innehåller bibliotek som bygger på Azure REST API, så att du kan interagera med REST API-åtgärder via välbekanta JavaScript-paradigm. De klientbiblioteksmetoder som beskrivs i den här artikeln använder följande REST API-åtgärder:
- Placera blob från URL (REST API)
- Placera Blockera från URL (REST API)
Klientbiblioteksresurser
Relaterat innehåll
- Den här artikeln är en del av utvecklarguiden för Blob Storage för JavaScript/Typescript. Mer information finns i den fullständiga listan över utvecklarguideartiklar i Skapa din JavaScript/Typescript-app.