Javascript 试图通过react应用程序从azure文件共享下载文件
我正在尝试通过react应用程序从azure文件共享下载文件 我创建了一个文件客户端,并使用 文档方面没有太多的内容,所以我正试图实现让文件内容下载的承诺 下面是从控制台日志中返回的对象Javascript 试图通过react应用程序从azure文件共享下载文件,javascript,reactjs,azure,azure-storage,azure-storage-files,Javascript,Reactjs,Azure,Azure Storage,Azure Storage Files,我正在尝试通过react应用程序从azure文件共享下载文件 我创建了一个文件客户端,并使用 文档方面没有太多的内容,所以我正试图实现让文件内容下载的承诺 下面是从控制台日志中返回的对象 { "lastModified": "2020-04-09T21:01:45.000Z", "metadata": {}, "contentType": "application/x-zip-compressed", "requestId": "xxx-401a-004e-193c-xxx",
{
"lastModified": "2020-04-09T21:01:45.000Z",
"metadata": {},
"contentType": "application/x-zip-compressed",
"requestId": "xxx-401a-004e-193c-xxx",
"version": "2019-07-07",
"isServerEncrypted": true,
"fileAttributes": "Archive",
"fileCreatedOn": "2020-04-09T21:01:45.148Z",
"fileLastWriteOn": "2020-04-09T21:01:45.148Z",
"fileChangeOn": "2020-04-09T21:01:45.148Z",
"filePermissionKey": "xxx*xxx",
"fileId": "xxxxx",
"fileParentId": "xxxxx",
"leaseState": "available",
"leaseStatus": "unlocked",
"blobBody": {}
}
最后一行返回未定义
使用修改过的代码进行编辑:
如何获取文件内容?如果查看的定义,您会注意到blobBody参数本质上是一个承诺
一旦你解决了这个承诺,你应该得到Blob。根据文档文件。blobBody是一个承诺。“你有没有试着去解决这个承诺?”GauravMantri说,成功了,谢谢。如果你想发布解决方案,很高兴回来查看并给你评分
blobBody: Promise { "fulfilled" }
<state>: "fulfilled"
<value>: Blob
size: 1960118
type: "application/x-zip-compressed"
<prototype>: BlobPrototype
arrayBuffer: function arrayBuffer()
constructor: function ()
size:
slice: function slice()
stream: function stream()
text: function text()
console.log(`downloading file: ${fileName}`)
const fileClient = this.state.doneDirClient.getFileClient(fileName)
const file = await fileClient.download()
console.log(file)
console.log(file.blobBody.Blob)
async download(fileName: string) {
const fileClient = this.state.doneDirClient.getFileClient(fileName)
const file = await fileClient.download()
Promise.resolve(file.blobBody).then(function (value) {
fileDownload(value, fileName)
});
}
type FileDownloadResponse = FileDownloadHeaders & { _response: Object, blobBody: Promise<Blob>, readableStreamBody: NodeJS.ReadableStream }