【发布时间】:2022-10-07 04:26:24
【问题描述】:
我尝试在 BlobClient 上运行 .download(),但遇到错误:
api.isInstrumentationSuppressed is not a function
我已确保我为浏览器使用了适当的方法。
我正在运行以下代码以从我的 blob 存储中获取数据。
async function readBlob(blobName) {
const blobSvc = new ContainerClient(
{{containerUrl}},
new StorageSharedKeyCredential({{accountName}}, {{accountKey}})
);
const blobClient = blobSvc.getBlockBlobClient(blobName);
// In browsers, get downloaded data by accessing downloadBlockBlobResponse.blobBody
const downloadBlockBlobResponse = await blobClient.download();
//The rest of the function does not run bc above line throws ERROR
const downloaded = await blobToString(await downloadBlockBlobResponse.blobBody);
console.log(\"Downloaded blob content\", downloaded);
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);
});
}
} catch (error) {
throw new Error(error);
}
}
当我尝试在我的 nodeApp 中使用 .download() 时,它可以正常工作,使用 Node Version of the logic 。
通过调试,我注意到一个有趣的点是我在 Node_Modules 中的@azure 下看到:
我注意到当我将它安装在我的应用程序之外的其他地方时,它不会创建 Node_Modules 子文件夹并且它工作正常。此设置配置是否与我遇到的问题有关?我也卸载并重新安装了几次。我不确定,但它似乎不应该把我带到那个子文件夹..它应该把我带到 @azure/core-tracing that\'s 在与 @azure/storage-blob 相同的父文件夹中。
感谢您提供任何帮助!
编辑:我还尝试查看添加更多依赖项是否有助于:
npm install --save @opentelemetry/api @opentelemetry/sdk-trace-web @opentelemetry/instrumentation-document-load @opentelemetry/context-zone... 还是没有运气
标签: javascript browser sdk azure-blob-storage open-telemetry