JS Azure 博客存储 - 运行时出现需要错误?

Posted

技术标签:

【中文标题】JS Azure 博客存储 - 运行时出现需要错误?【英文标题】:JS Azure Blog Storage - Getting require error when running? 【发布时间】:2021-10-14 18:23:06 【问题描述】:

我目前正在尝试将数据从 Azure Blob Storage 获取到我的 Flask 应用程序中。通过这样做,我正在使用适用于浏览器的 javascript SDK v12。

我在运行代码时遇到问题,它在控制台中显示:

未捕获的错误:模块名称“@azure/storage-blob”尚未加载 然而对于上下文:_。使用要求([]) https://requirejs.org/docs/errors.html#notloaded 在 makeError (require.js:5) 在 Object.s [as require] (require.js:5) 在 requirejs (require.js:5) 在 java.js:1

代码(缩进有点乱)

const  BlobServiceClient  = require("@azure/storage-blob");

const containerName = "danicontainer";
const blobName = "Blobname foo";
const connStr = "ConnectionString foo";

const blobServiceClient = BlobServiceClient.fromConnectionString(connStr);

async function main() 
   const containerClient = blobServiceClient.getContainerClient(containerName);
   const blobClient = containerClient.getBlobClient(blobName);

// Get blob content from position 0 to the end
// In browsers, get downloaded data by accessing downloadBlockBlobResponse.blobBody
   const downloadBlockBlobResponse = await blobClient.download();
   const downloaded = await blobToString(await downloadBlockBlobResponse.blobBody);
   console.log("Downloaded blob content", downloaded);

 // [Browsers only] A helper method used to convert a browser Blob into string.
async function blobToString(blob) 
const fileReader = new FileReader();
return new Promise((resolve, reject) => 
  fileReader.onloadend = (ev) => 
    resolve(ev.target.result);
  ;
  fileReader.onerror = reject;
  fileReader.readAsText(blob);
  );
  
   document.write("Finished!");
   document.write(downloaded);
  

 main();
 console.log("Test");

除此之外,我们还有 require.js 文件以及 Flask 的 html/python 文件。

【问题讨论】:

【参考方案1】:

试试这些步骤

1) 创建一个名为 package.json 的新文本文件。此文件定义 Node.js 项目。将此文件保存在 blob-quickstart-v12 目录中。这是文件的内容:


    "name": "blob-quickstart-v12",
    "version": "1.0.0",
    "description": "Use the @azure/storage-blob SDK version 12 to interact with Azure Blob storage",
    "main": "blob-quickstart-v12.js",
    "scripts": 
        "start": "node blob-quickstart-v12.js"
    ,
    "author": "Your Name",
    "license": "MIT",
    "dependencies": 
        "@azure/storage-blob": "^12.0.0",
        "@types/dotenv": "^4.0.3",
        "dotenv": "^6.0.0"
    

2) 仍在 blob-quickstart-v12 目录中时,使用 npm install 命令安装适用于 JavaScript 包的 Azure Blob 存储客户端库。此命令读取 package.json 文件并安装适用于 JavaScript 包的 Azure Blob 存储客户端库 v12 及其依赖的所有库。

npm install

3)试试这个代码下载blob

// Get blob content from position 0 to the end
// In Node.js, get downloaded data by accessing downloadBlockBlobResponse.readableStreamBody
// In browsers, get downloaded data by accessing downloadBlockBlobResponse.blobBody

const downloadBlockBlobResponse = await blockBlobClient.download(0);
console.log('\nDownloaded blob content...');
console.log('\t', await streamToString(downloadBlockBlobResponse.readableStreamBody));

更多详情请参考document

【讨论】:

以上是关于JS Azure 博客存储 - 运行时出现需要错误?的主要内容,如果未能解决你的问题,请参考以下文章

错误:使用 Next.js 应用程序部署到 Azure 时出现“需要域选项”

创建 Azure 存储 Blob 容器时出现错误 403(已启用存储防火墙

Azure 功能:访问存储帐户时出现 403 错误

为 Azure 存储帐户创建专用终结点连接时出现 ResourceNotFound 错误

在 Azure Blob 存储中上传文件时出现 InvalidAuthenticationInfo 错误

在 Azure 网站中使用 Azure SDK 时出现间歇性 SSL/TLS 错误