Share via


Een blob kopiëren van een bronobject-URL met JavaScript

In dit artikel wordt beschreven hoe u een blob kopieert vanuit een bronobject-URL met behulp van de Azure Storage-clientbibliotheek voor JavaScript. U kunt een blob kopiëren vanuit een bron binnen hetzelfde opslagaccount, van een bron in een ander opslagaccount of van een toegankelijk object dat via een HTTP GET-aanvraag op een bepaalde URL wordt opgehaald.

De clientbibliotheekmethoden die in dit artikel worden behandeld, maken gebruik van de Put Blob From URL en Put Block From URL REST API-bewerkingen. Deze methoden hebben de voorkeur voor kopieerscenario's waarbij u gegevens naar een opslagaccount wilt verplaatsen en een URL voor het bronobject wilt hebben. Zie Een blob kopiëren met asynchrone planning met behulp van JavaScript voor kopieerbewerkingen waar u asynchrone planning wilt.

Vereisten

  • In de voorbeelden in dit artikel wordt ervan uitgegaan dat u al een project hebt ingesteld voor gebruik met de Azure Blob Storage-clientbibliotheek voor JavaScript. Zie Aan de slag met Azure Blob Storage en JavaScript voor meer informatie over het instellen van uw project, inclusief pakketinstallatie, het importeren van modules en het maken van een geautoriseerd clientobject voor gebruik met gegevensbronnen.
  • Het autorisatiemechanisme moet machtigingen hebben om een kopieerbewerking uit te voeren. Zie de autorisatierichtlijnen voor de volgende REST API-bewerking voor meer informatie:

Over het kopiëren van blobs vanuit een bronobject-URL

Met de Put Blob From URL bewerking wordt een nieuwe blok-blob gemaakt waarin de inhoud van de blob wordt gelezen uit een bepaalde URL. De bewerking wordt synchroon voltooid.

De bron kan elk object ophalen via een standaard HTTP GET-aanvraag op de opgegeven URL. Dit omvat blok-blobs, toevoeg-blobs, pagina-blobs, blob-momentopnamen, blobversies of een toegankelijk object binnen of buiten Azure.

Wanneer het bronobject een blok-blob is, wordt alle vastgelegde blob-inhoud gekopieerd. De bloklijst blijft echter niet behouden en niet-opgegeven blokken worden niet gekopieerd. De inhoud van de doel-blob is identiek aan die van de bron, maar de vastgelegde bloklijst blijft niet behouden.

De bestemming is altijd een blok-blob, een bestaande blok-blob of een nieuwe blok-blob die door de bewerking is gemaakt. De inhoud van een bestaande blob wordt overschreven met de inhoud van de nieuwe blob.

Met Put Blob From URL de bewerking wordt altijd de hele bron-blob gekopieerd. Het kopiëren van een bereik van bytes of een set blokken wordt niet ondersteund. Als u gedeeltelijke updates wilt uitvoeren voor de inhoud van een blok-blob met behulp van een bron-URL, gebruikt u de API Put Block From URL samen met Put Block List.

Zie Opmerkingen bij Put Blob From URL voor meer informatie over de Put Blob From URL bewerking, inclusief beperkingen voor blobgrootten en factureringsoverwegingen.

Een blob kopiëren vanuit een bronobject-URL

In deze sectie vindt u een overzicht van methoden die worden geleverd door de Azure Storage-clientbibliotheek voor JavaScript om een kopieerbewerking uit te voeren vanuit een URL van een bronobject.

De volgende methode verpakt de bewerking Put Blob From URL REST API en maakt een nieuwe blok-blob waarin de inhoud van de blob wordt gelezen uit een bepaalde URL:

Deze methoden hebben de voorkeur voor scenario's waarin u gegevens naar een opslagaccount wilt verplaatsen en een URL voor het bronobject wilt hebben.

Voor grote objecten kunt u ervoor kiezen om met afzonderlijke blokken te werken. Met de volgende methode wordt de Put Block From URL REST API-bewerking verpakt. Met deze methode maakt u een nieuw blok dat moet worden doorgevoerd als onderdeel van een blob waarin de inhoud wordt gelezen uit een bron-URL:

Een blob kopiëren vanuit een bron in Azure

Als u een blob kopieert vanuit een bron in Azure, kan toegang tot de bron-blob worden geautoriseerd via Microsoft Entra ID, een SHARED Access Signature (SAS) of een accountsleutel.

In het volgende voorbeeld ziet u een scenario voor het kopiëren van een bron-blob in Azure:

async function copyFromSourceInAzure(sourceBlob, destinationBlob) {
  // Get the source blob URL and create the destination blob
  await destinationBlob.syncUploadFromURL(sourceBlob.url);
}

De methode syncUploadFromURL kan ook een parameter BlockBlobSyncUploadFromURLOptions accepteren om verdere opties voor de bewerking op te geven.

Een blob kopiëren van een bron buiten Azure

U kunt een kopieerbewerking uitvoeren op elk bronobject dat kan worden opgehaald via een HTTP GET-aanvraag op een bepaalde URL, inclusief toegankelijke objecten buiten Azure. In het volgende voorbeeld ziet u een scenario voor het kopiëren van een blob vanuit een toegankelijke bronobject-URL.

async function copyFromExternalSource(sourceUrl, destinationBlob) {
  // Create the destination blob from the source URL
  await destinationBlob.syncUploadFromURL(sourceUrl);
}

Resources

Zie de volgende resources voor meer informatie over het kopiëren van blobs met behulp van de Azure Blob Storage-clientbibliotheek voor JavaScript.

REST API-bewerkingen

De Azure SDK voor JavaScript bevat bibliotheken die zijn gebaseerd op de Azure REST API, zodat u kunt communiceren met REST API-bewerkingen via bekende JavaScript-paradigma's. De clientbibliotheekmethoden die in dit artikel worden behandeld, gebruiken de volgende REST API-bewerkingen:

Codevoorbeelden

Clientbibliotheekbronnen