如何在Azure存储浏览器的JavaScript SDK中使用BlockBlobClient.getProperties获取元数据

eni9jsuy  于 2023-02-02  发布在  Java
关注(0)|答案(1)|浏览(130)

我正在尝试使用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
k10s72fa

k10s72fa1#

    • 已解决**

如果其他人也遇到了同样的问题,这里就是答案。在azure门户中没有设置expose header选项。这意味着头没有暴露给前端,我的应用程序无法读取它们。当我将它们设置为所有这些时,解决了我的问题。

相关问题