node.js - 将 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
解决方案
实际上,Azure Blob 存储中没有文件夹,所有 Blob 都存储在容器下的平面层次结构中。因此,您可以直接指定Small/test.png
为上传的 blob 名称。
推荐阅读
- javascript - 扩展 vue 组件以填充另一个父 div
- r - 条件面板与闪亮的反应性相结合
- javascript - vuejs 模板中的引号
- php - Laravel 对数据库中的数据进行排序
- javascript - 插入记录 Sqlite3 数据库值的日期(?,?,?,“日期()”)?
- php - Woocommerce如何从function.php获取自定义字段值
- angular - 默认选中复选框需要在角度 6 中取消选中
- forms - 访问连续表单的表单重复值
- php - 查找最低 PHP 数组值(特定)并返回最低键
- javascript - 无法在angularjs中使用动态表头对表进行排序?