Azure 存储将图像从 blob 复制到 blob
Azure Storage copy an image from blob to blob
我正在使用 Azure Storage Nodejs
,我需要做的是将图像从一个 blob 复制到另一个 blob。
首先,我尝试 getBlobToFile
在磁盘的临时位置获取图像,然后从该临时位置 createBlockBlobFromFile
获取图像。该方法完成了任务,但由于某种原因,它在 10% 的情况下没有完全复制。
我试图使用 getBlobToText
并将其结果放入 createBlockBlobFromText
,还尝试将需要 blob 的选项作为图像容器。那个方法彻底失败了,图片复制后打不开
也许有一种方法可以复制 blob 文件并将其粘贴到其他 blobl 中,但我没有找到该方法。
我还能做什么?
我不确定您的特定复制错误是什么,但是...对于 getLocalBlobToFile()
,您实际上是将 blob 内容从 blob 存储移动到您的 VM(或本地计算机),并且然后使用 createBlockBlobFromLocalFile()
将全部内容推回 blob 存储,这会导致两次物理网络移动。
Azure 存储系统支持 blob 复制作为 1st-class 操作。虽然它可通过 REST API 调用使用,但它也包含在您正在使用的同一 SDK 中,在方法 BlobService.startCopyBlob()
中(源代码 here)。这将指示存储启动异步复制操作,完全在存储系统内(意味着您这边没有下载+上传)。您将能够设置源和目标、设置超时等(所有参数都完整记录在源代码中)。
已接受的答案中的 link 已损坏,但方法是正确的:方法 startCopyBlob
记录在此处
(更新时间:2020 年 1 月 3 日)https://docs.microsoft.com/en-us/javascript/api/azure-storage/BlobService?view=azure-node-latest#azure_storage_BlobService_createBlockBlobFromLocalFile
我正在使用 Azure Storage Nodejs
,我需要做的是将图像从一个 blob 复制到另一个 blob。
首先,我尝试 getBlobToFile
在磁盘的临时位置获取图像,然后从该临时位置 createBlockBlobFromFile
获取图像。该方法完成了任务,但由于某种原因,它在 10% 的情况下没有完全复制。
我试图使用 getBlobToText
并将其结果放入 createBlockBlobFromText
,还尝试将需要 blob 的选项作为图像容器。那个方法彻底失败了,图片复制后打不开
也许有一种方法可以复制 blob 文件并将其粘贴到其他 blobl 中,但我没有找到该方法。
我还能做什么?
我不确定您的特定复制错误是什么,但是...对于 getLocalBlobToFile()
,您实际上是将 blob 内容从 blob 存储移动到您的 VM(或本地计算机),并且然后使用 createBlockBlobFromLocalFile()
将全部内容推回 blob 存储,这会导致两次物理网络移动。
Azure 存储系统支持 blob 复制作为 1st-class 操作。虽然它可通过 REST API 调用使用,但它也包含在您正在使用的同一 SDK 中,在方法 BlobService.startCopyBlob()
中(源代码 here)。这将指示存储启动异步复制操作,完全在存储系统内(意味着您这边没有下载+上传)。您将能够设置源和目标、设置超时等(所有参数都完整记录在源代码中)。
已接受的答案中的 link 已损坏,但方法是正确的:方法 startCopyBlob
记录在此处
(更新时间:2020 年 1 月 3 日)https://docs.microsoft.com/en-us/javascript/api/azure-storage/BlobService?view=azure-node-latest#azure_storage_BlobService_createBlockBlobFromLocalFile