我正在尝试使用Azure存储javascript SDK获取特定blob的元数据。以下是我的代码:
private returnBlobMetadata(filename: string, container: string) {
const blobServiceClient = new BlobServiceClient(`${this.sasData.storageUri}?${this.sasData.storageAccessToken}`);
const containerClient = blobServiceClient.getContainerClient(container);
const blobClient = containerClient.getBlockBlobClient(filename);
return from(blobClient.getProperties());
}
当我订阅这个函数的输出时,我得到了一个响应。但是,我的元数据是空的,尽管元数据存在于门户中,但其他实体也是空的。当列出容器中的blob时,我也能够接收元数据。
以下是我的回应:
你能给予我的任何帮助都将不胜感激,因为我一直在为这件事拼命。
EDIT在检查标题时,我可以看到它存在于x-ms-meta-filename中。
Accept-Ranges: bytes
Access-Control-Allow-Origin: *
Access-Control-Expose-Headers: content-length
Content-Length: 67961
Date: Tue, 28 Apr 2020 11:41:08 GMT
ETag: "0x8D7EB1A5E0E88CF"
Last-Modified: Tue, 28 Apr 2020 02:17:57 GMT
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0
x-ms-access-tier: Hot
x-ms-access-tier-inferred: true
x-ms-blob-type: BlockBlob
x-ms-client-request-id: **id**
x-ms-creation-time: Tue, 28 Apr 2020 01:50:06 GMT
x-ms-lease-state: available
x-ms-lease-status: unlocked
x-ms-meta-filename: Curriculum Vitae.pdf <-- this is what I want
x-ms-request-id: 4d87bf9c-901e-0089-5551-1d8136000000
x-ms-server-encrypted: true
x-ms-version: 2019-02-02
1条答案
按热度按时间k10s72fa1#
如果其他人也遇到了同样的问题,这里就是答案。在azure门户中没有设置expose header选项。这意味着头没有暴露给前端,我的应用程序无法读取它们。当我将它们设置为所有这些时,解决了我的问题。