如何在JavaScript中获取S3 Bucket对象的用户自定义元数据?
获取S3对象的自定义元数据
使用AWS SDK的GetObjectCommand时,自定义元数据无需手动解析响应头——SDK会自动将响应头中以x-amz-meta-开头的字段提取出来,放到响应对象的metadata属性里。
实现示例(以JavaScript SDK v3为例)
import { S3Client, GetObjectCommand } from "@aws-sdk/client-s3"; const s3Client = new S3Client({ region: "你的区域" }); async function getObjectWithMetadata() { const params = { Bucket: "目标存储桶名", Key: "对象键名" }; try { const response = await s3Client.send(new GetObjectCommand(params)); // 所有自定义元数据都在这里,已去除x-amz-meta-前缀 const customMeta = response.metadata; // 读取指定的元数据,比如你设置的x-amz-meta-project-id const projectId = customMeta["project-id"]; console.log("项目ID:", projectId); console.log("全部自定义元数据:", customMeta); } catch (err) { console.error("获取对象出错:", err); } } getObjectWithMetadata();
关键说明
- 元数据键名会自动转换为小写,且去掉
x-amz-meta-前缀,比如x-amz-meta-User-Name会变成user-name - 如果你的SDK版本是v2,逻辑类似,响应对象的
Metadata字段(首字母大写)就是自定义元数据集合
内容的提问来源于stack exchange,提问作者user63033
相关产品推荐
相关产品推荐

