reactjs - React Js 与 azure 存储 blob

标签 reactjs azure azure-blob-storage

我在使用 React js 从 Azure 存储帐户下载文件时遇到问题。我通过 npm install 安装了 @azure/storage-blob 并导入了它。

const storageAccount = '<storage-account-name>';
const sas = '<sas-token>'
const blobService = new BlobServiceClient(
      `https://${storageAccount}.blob.core.windows.net/${sas}`
);

const containerClient = blobService.getContainerClient('<container-name>');
const blobClient = containerClient.getBlockBlobClient('<file-name>');
blobClient.download().then(val => console.log(val));

当我尝试使用 readStreamBody 下载 Microsoft 示例中提到的文件时 https://learn.microsoft.com/en-us/azure/storage/blobs/storage-blob-download-javascript#download-to-a-string ,我可以访问该帐户,但总是将 readableStreamBody 检索为未定义。

enter image description here 我需要为 Azure 配置任何设置吗?

提前谢谢您。

我期待 readStreamBody 的值,这样我就可以下载该文件。

最佳答案

考虑到您正在使用 ReactJS 下载 blob(换句话说,在浏览器中使用 SDK),blob 内容可在 blobBody 中找到。来自 documentation link您分享了:

enter image description here

请尝试以下操作:

// Download and convert a blob to a string
const downloadBlockBlobResponse = await blobClient.download();
const downloaded = await blobToString(await downloadBlockBlobResponse.blobBody);
console.log(
  "Downloaded blob content",
  downloaded
);

async function blobToString(blob: Blob): Promise<string> {
  const fileReader = new FileReader();
  return new Promise<string>((resolve, reject) => {
    fileReader.onloadend = (ev: any) => {
      resolve(ev.target!.result);
    };
    fileReader.onerror = reject;
    fileReader.readAsText(blob);
  });
}

代码引用:https://learn.microsoft.com/en-us/javascript/api/%40azure/storage-blob/blobclient?view=azure-node-latest#@azure-storage-blob-blobclient-download .

关于reactjs - React Js 与 azure 存储 blob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76721135/

相关文章:

javascript - 如何在React js文本区域内渲染漂亮的json数据?

reactjs - useEffect hook - 依赖项 - 重新渲染问题

sql - MERGE - 用 sql server 替换 ON Duplicate

c# - 如何使用用户分配的托管标识访问 Azure 中 Function App Config 的 Key Vault

java - Azure Java SDK - VHD 上传

javascript - 更改颜色 InputLabel Material UI

javascript - 理解 React 的综合事件系统

azure - Azure Function App 的 "Storage Account"设置有什么作用?

excel - 源数据集中的动态工作表名称 : (Excel (Blob storage)) on Azure Data Factory. - 错误:请为您的数据集选择工作表

azure - 使用 pageBlobClient 的简单 UploadPage azure blob