我正在尝试实现一个连接到 Microsoft Azure 的 Web 应用程序,以便将文件上传到其云存储。我一直关注的文档是在浏览器中使用 JavaScript v12 SDK 管理 blob。其教程如下:
https://learn.microsoft.com/en-us/azure/storage/blobs/quickstart-blobs-javascript-browser
文档明确指出,要在网站上使用 Azure SDK 库,必须使用捆绑程序将代码转换为在浏览器中运行。建议的捆绑程序是 parcel-bundler
我已经很好地构建了该项目,并且按照教程概述,一切都在浏览器中运行,但是在模糊 API key 方面我遇到了问题。
替代教程解释了使用 Node.js 上传 Azure blob,建议使用环境变量:
https://learn.microsoft.com/en-us/azure/storage/blobs/storage-quickstart-blobs-nodejs
我已经在我的浏览器教程中完成了此操作,但是,当 Parcel 将项目捆绑在一起时,可以通过查看源文件来访问完整的 API key ,这表明它们在 bundle 的构建过程中已显示。
看来我需要使用 bundler ,因为客户端 JavaScript 中不存在用于浏览器使用的函数。
如何解决这个问题?
最佳答案
您不应在基于浏览器的应用程序中使用 API key ,因为这是一个主要的安全问题(任何用户都可以查看浏览器中的 JavaScript 文件并提取 key )。
您应该做的是拥有一个您的应用程序可以调用的 API 端点,并且该 API 端点应该向您返回一个共享访问签名 (SAS) token 。然后,您应该在应用程序中使用此 SAS token 与 Azure 存储交互。
关于javascript - 如何使用环境变量为浏览器实现Microsoft Azure Blob存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71082923/