首页 > 解决方案 > 将 blob 存储在 blob 容器中的文件夹中

问题描述

我正在重写 node.js/express 中的后端调用,该调用从 Azure 存储中的大文件夹下载文件,然后调整图像大小并将其上传到同一 blob 容器中的另一个文件夹。只是一个不同的文件夹。请求下载图片非常简单,但是当我尝试上传时,我找不到在文件夹中上传的选项。就在容器的根目录中。

我尝试手动在 URL 中添加文件夹。然而,图书馆不允许我改变它,因为它是一个常数。在文件名中添加“/”会将“/”替换为“%2F”(这也适用于 blob 容器名称)。

我正在使用库@azure/storage-blob

const containerName = 'test/Small';

// upload file
BlockBlobURL.fromContainerURL(
    ContainerURL.fromServiceURL(serviceURL, containerName),
    (req.body.NewFileName != null ? req.body.NewFileName : req.body.FileName) + '.png'
);

URL最终成为

https://*****.blob.core.windows.net/test%2FSmall/test.png

代替

https://*****.blob.core.windows.net/test/Small/test.png

标签: node.jsazure-blob-storage

解决方案


实际上,Azure Blob 存储中没有文件夹,所有 Blob 都存储在容器下的平面层次结构中。因此,您可以直接指定Small/test.png为上传的 blob 名称。


推荐阅读