[英]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 复制作为第一类操作。 虽然它可以通过 REST API 调用获得,但它也包含在您使用的相同 SDK 中,在BlobService.startCopyBlob()
方法中(源代码在此)。 这将指示存储启动异步复制操作,完全在存储系统内(意味着您这边没有下载+上传)。 您将能够设置源和目标、设置超时等(所有参数都完整记录在源代码中)。
尽管方法正确,但已接受答案中的链接已断开:此处记录了方法startCopyBlob
(更新:2020 年 1 月 3 日) https://docs.microsoft.com/en-us/javascript/api/azure-storage/BlobService?view=azure-node-latest#azure_storage_BlobService_createBlockBlobFromLocalFile
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.