使用 JavaScript 从源对象 URL 复制 Blob

您所在的位置:网站首页 java获取blob数据 使用 JavaScript 从源对象 URL 复制 Blob

使用 JavaScript 从源对象 URL 复制 Blob

2023-05-14 02:25| 来源: 网络整理| 查看: 265

你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。

使用 JavaScript 从源对象 URL 复制 Blob 项目 05/12/2023

本文介绍如何使用适用于 JavaScript 的 Azure 存储客户端库从源对象 URL 复制 Blob。 可以从同一存储帐户中的源、不同存储帐户中的源或从给定 URL 上通过 HTTP GET 请求检索的任何可访问对象复制 Blob。

本文中介绍的客户端库方法使用 Put Blob From URL 和 Put Block From URL REST API 操作。 对于要将数据移动到存储帐户并具有源对象的 URL 的复制方案,首选这些方法。 有关需要异步计划的复制操作,请参阅使用 JavaScript 通过异步计划复制 Blob。

先决条件

若要使用本文中的代码示例,请确保具有:

用于连接到 Blob 存储数据资源的授权客户端对象。 若要了解详细信息,请参阅创建和管理与数据资源交互的客户端对象。 执行复制操作的权限。 若要了解详细信息,请参阅以下 REST API 操作的授权指南: 从 URL 放置 Blob 从 URL 放置块 已安装到项目目录的包“@azure/storage-blob”。 如果使用 DefaultAzureCredential 进行授权,则还需要 @azure/identity。 要详细了解如何设置项目,请参阅 Azure Blob 存储和 JavaScript 入门。 关于从源对象 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 的内容执行部分更新,请使用 Put Block From URL API 和 Put Block List。

若要详细了解 Put Blob From URL 操作(包括 blob 大小限制和计费注意事项),请参阅 Put Blob From URL 注解。

从源对象 URL 复制 blob

本部分概述了由适用于 JavaScript 的 Azure 存储客户端库提供,用于从源对象 URL 执行复制操作的方法。

以下方法会包装 Put Blob From URL REST API 操作,并创建一个新的块 blob,该 blob 的内容是从给定 URL 读取的:

BlockBlobClient.syncUploadFromURL

对于要将数据移动到存储帐户并具有源对象的 URL 的方案,首选这些方法。

对于大型对象,可以选择使用单个块。 以下方法可包装 Put Block From URL REST API 操作。 此方法会创建一个新块,以作为 blob 的一部分提交,其中的内容是从源 URL 读取的:

BlockBlobClient.stageBlockFromURL 在 Azure 中从源复制 blob

如果要在 Azure 中从源复制 blob,可以通过 Azure Active Directory (Azure AD)、共享访问签名 (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 操作

Azure SDK for JavaScript 包含基于 Azure REST API 而生成的库,允许你通过熟悉的 JavaScript 范例与 REST API 操作进行交互。 本文中介绍的客户端库方法使用以下 REST API 操作:

从 URL 放置 Blob (REST API) Put Block From URL (REST API) 代码示例 查看本文中的代码示例 (GitHub) 客户端库资源 客户端库参考文档 客户端库源代码 包 (npm)


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3