我有一个NodeJS后端,它使用微软的官方blob存储库(@azure/storage-blob)来管理我的Blob存储:
https://www.npmjs.com/package/@azure/storage-blob
将一个blob从一个文件夹移动到另一个文件夹是必要的。不幸的是,我找不到任何相关文档。
到目前为止,我所做的是:
const { BlobServiceClient } = require("@azure/storage-blob");
const blobServiceClient = BlobServiceClient.fromConnectionString(process.env.storageconnection);
const containerClient = blobServiceClient.getContainerClient('import');
const blobClient = containerClient.getBlobClient('toImport/' + req.body.file);
const downloadBlockBlobResponse = await blobClient.download();
... do some stuff with the value of the files
就像你在代码中看到的那样,我从文件夹“toImport”中读取了一个文件。然后我想把这个文件移到另一个文件夹“finished”中。这可能吗?也许我需要创建一个文件的副本,然后删除旧的文件?
2条答案
按热度按时间h43kikqp1#
因此,Azure Blob存储中不支持此类移动操作。你必须做的是将Blob从源复制到目标,监视复制进度(因为复制操作是异步的),并在复制完成后删除Blob。
对于复制,您要使用的方法是
beginCopyFromURL(string, BlobBeginCopyFromURLOptions)
。请参阅以下代码:
v6ylcynt2#
前面的最佳解决方案似乎工作,但我不喜欢使用无限循环。
这是移动blob文件的另一种方法