【发布时间】:2019-06-22 15:54:37
【问题描述】:
我从 azure 的 NodeJS Blob 快速入门中获得了大部分代码,我能够成功上传包括图像在内的文件,并且可以在 azure 存储仪表板中看到它们。但我似乎无法下载它们或获取它们的 URL,我需要数据库的 url,以便我可以查询它并使用 url 来检索文件。
快速入门中代码的下载部分对我来说不是很清楚,它似乎是为文本制作的,因为上传也是如此。如果我进入我的 azure 存储仪表板,我可以看到容器,我可以看到使用图像创建的 blob,我可以单击图像并将其加载到另一个页面中。但是,如果我转到属性并选择 Uri:https://facerstorage.blob.core.windows.net/a00008/sun.png
并将其粘贴到我的浏览器中,我得到:
我还打印了从 blockBlobURL 返回的 url,它与上面 blob 仪表板中的 Uri 中的相同,尽管它在 a0009 和 sun.png 之间有一个“/./”,它被删除例如浏览器:https://facerstorage.blob.core.windows.net/a00009/./sun.png" 相同,我得到相同的错误。
不知道这里出了什么问题
我使用了nodejs blobs quickstart的代码,下载的代码如下:
const blockBlobURL = BlockBlobURL.fromContainerURL(containerURL, content);
console.log("The blobs URL is: " + JSON.stringify(blockBlobURL.url));
const downloadResponse = await blockBlobURL.download(aborter, 0);
downloadedContent = downloadResponse.readableStreamBody.read(content.length)//.toString();
console.log(`Downloaded blob content: "${downloadedContent}"`);
我没有 BlockBlobURL.download 函数的代码,也不明白是什么:
const downloadResponse = await blockBlobURL.download(aborter, 0);
downloadedContent = downloadResponse.readableStreamBody.read(content.length)//.toString();
正在做。
我认为从上面的 url 我应该已经能够从该 url 访问图像,但我得到了如上所示的错误。不知道这两个到底是做什么的。
感谢您的帮助。
【问题讨论】:
-
这可能意味着您的存储不公开。您需要在尝试下载时将其设置为公开或正确验证
-
我在哪里可以设置并阅读任何链接,我在快速入门指南中没有看到任何相关内容?而且当它运行下载响应和下载内容时,它不需要任何东西就可以工作。
-
这谈到了创建容器和设置访问级别:docs.microsoft.com/en-us/azure/storage/blobs/… 也检查一下:docs.microsoft.com/en-us/azure/storage/blobs/…
-
会看看谢谢老兄
标签: node.js azure-storage azure-blob-storage