共用方式為


使用 JavaScript 從來源物件 URL 複製 Blob

本文說明如何使用適用於 JavaScript 的 Azure 儲存體用戶端程式庫,從來源物件 URL 複製 Blob。 您可以從相同儲存體帳戶內的來源、從不同儲存體帳戶中的來源,或從指定 URL 上透過 HTTP GET 要求擷取的任何可存取物件複製 Blob。

本文涵蓋的用戶端程式庫方法會使用從 URL 放置 Blob從 URL 放置區塊 REST API 作業。 這些方法適用於您想要將資料移至儲存體帳戶,且具有來源物件的 URL 的複製案例。 針對您想要進行非同步排程的複製作業,請參閱使用 JavaScript 複製具有非同步排程的 Blob

必要條件

  • 本文中的範例假設您已有專案設定好要使用適用於 JavaScript 的 Azure Blob 儲存體用戶端程式庫。 若要了解設定專案,包括套件安裝、匯入模組,以及建立授權的用戶端物件來處理資料資源,請參閱開始使用 Azure Blob 儲存體和 JavaScript (部分機器翻譯)。
  • 授權機制必須具有執行複製作業的權限。 若要深入了解,請參閱下列 REST API 作業的授權指導:

關於從來源物件 URL 複製 Blob

Put Blob From URL 作業會建立新的區塊 Blob,其中 Blob 的內容會從指定的 URL 讀取。 作業會同步完成。

來源可以是透過指定 URL 上標準 HTTP GET 要求擷取的任何物件。 這包括區塊 Blob、附加 Blob、分頁 Blob、Blob 快照集、Blob 版本,或 Azure 內外的任何可存取物件。

當來源對像是區塊 Blob 時,會複製所有認可的 Blob 內容。 不過,區塊清單不會保留,也不會複製未認可的區塊。 目的地 Blob 的內容與來源的內容相同,但不會保留已認可的區塊清單。

目的地一律是區塊 Blob、現有的區塊 Blob,或作業所建立的新區塊 Blob。 現有 Blob 的內容會以新 Blob 的內容覆寫。

Put Blob From URL 作業一律會複製整個來源 Blob。 不支援複製特定範圍的位元組或一組區塊。 若要使用來源 URL 對區塊 Blob 的內容執行部分更新,請使用從 URL 放置區塊 API 以及放置區塊清單

若要深入了解 Put Blob From URL 作業,包括 Blob 大小限制和計費考量事項,請參閱從 URL 放置 Blob 備註

從來源物件 URL 複製 Blob

本節提供適用於 JavaScript 的 Azure 儲存體用戶端程式庫提供的方法概觀,以從來源物件 URL 執行複製作業。

下列方法會包裝從 URL 放置 Blob REST API 作業,並建立新的區塊 Blob,其中 Blob 的內容會從指定的 URL 讀取:

這些方法適用於您想要將資料移至儲存體帳戶,且具有來源物件的 URL 的案例。

對於大型物件,您可以選擇使用個別區塊。 下列方法會包裝從 URL 放置區塊 REST API 作業。 這個方法會建立新的區塊,以作為從來源 URL 讀取內容的 Blob 一部分認可:

從 Azure 內的來源複製 Blob

如果您要從 Azure 內的來源複製 Blob,可以透過 Microsoft Entra ID、共用存取簽章 (SAS) 或帳戶金鑰來授權來源 Blob 的存取權。

下列範例顯示從 Azure 內的來源 Blob 複製的案例:

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

syncUploadFromURL 方法也可以接受 BlockBlobSyncUploadFromURLOptions 參數,以指定作業的進一步選項。

從 Azure 外部的來源複製 Blob

您可以在透過 HTTP GET 要求於指定 URL 擷取的任何來源物件上,執行複製作業,包括 Azure 外部的可存取物件。 下列範例示範從可存取的來源物件 URL 複製 Blob 的案例。

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

資源

若要深入了解如何使用適用於 JavaScript 的 Azure Blob 儲存體用戶端程式庫來複製 Blob,請參閱下列資源。

REST API 操作

適用於 JavaScript 的 Azure SDK 包含建置在 Azure REST API 之上的程式庫,可讓您透過熟悉的 JavaScript 範例與 REST API 作業進行互動。 本文涵蓋的用戶端程式庫方法會使用下列 REST API 作業:

程式碼範例

用戶端程式庫資源