我在S3上有一个带有一些元数据的文件 x-amz-meta-description ="一些描述" 我将文件上传到S3时包含了此元数据。 如果我使用亚马逊控制台检查元数据,那么元数据就在那里。 接下来,我在CORS配置中添加了以下内容以访问标题:
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>HEAD</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
在我的网络应用中,我试图检查文件的标题。我使用以下javascript代码:
AWS.config.update({accessKeyId: 'XXX', secretAccessKey: 'YYY'})
var bucket = new AWS.S3({params: {Bucket: 'zzz'}});
var params = {Bucket: 'zzz',Key: 'content/myfile.doc'};
bucket.headObject(params, function (err, data) {
if (err)
console.log(err, err.stack);
else
console.log(data);
});
运行代码数据后。元数据为空。 是否有任何其他配置来获取与文件关联的元数据?我做错了什么?
全部谢谢
PS:我使用了getObject函数,但元数据仍然是空的。
答案 0 :(得分:4)
您需要公开这样的自定义标题:
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>HEAD</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
<ExposeHeader>x-amz-meta-description</ExposeHeader>
</CORSRule>
添加ExposeHeader帮助我解决了这个问题。
答案 1 :(得分:0)
元数据仍然存在缺陷,此链接提供的修补程序无效:2017-05-07T03:34:17.319Z
。
允许标头Made in CORS修复了在HTTP请求中显示的标头,但不在回调中。我自己最终散布了这个对象。