使用 headObject 从 S3 文件中获取 x-amz-meta
Using headObject to get x-amz-meta from S3 File
例如,我在 S3 上有一个包含一些元数据的文件
x-amz-meta-description="some description"
当我将文件上传到 S3 时,此元数据已包含在内。
如果我使用 Amazon 控制台检查元数据,元数据就在那里。
接下来,我将以下内容添加到 CORS 配置中以访问 headers:
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>HEAD</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
我正在尝试从我的网络应用程序检查文件的 headers。我正在使用以下 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);
});
运行 之后代码 data.Metadata 为空。
是否有任何其他配置来获取与文件关联的元数据?我做错了什么?
感谢大家
PS:我用了getObject函数,但是Metadata还是空的
您需要像这样公开自定义 headers:
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>HEAD</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
<ExposeHeader>x-amz-meta-description</ExposeHeader>
</CORSRule>
添加 ExposeHeader 帮助我解决了问题。
元数据仍然存在缺陷,link 中提供的修复无效:2017-05-07T03:34:17.319Z
。
允许 headers Made in CORS 修复了 headers 显示在 HTTP 请求中,但不显示在回调中。我最终自己散列了 object。
例如,我在 S3 上有一个包含一些元数据的文件 x-amz-meta-description="some description" 当我将文件上传到 S3 时,此元数据已包含在内。 如果我使用 Amazon 控制台检查元数据,元数据就在那里。 接下来,我将以下内容添加到 CORS 配置中以访问 headers:
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>HEAD</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
我正在尝试从我的网络应用程序检查文件的 headers。我正在使用以下 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);
});
运行 之后代码 data.Metadata 为空。 是否有任何其他配置来获取与文件关联的元数据?我做错了什么?
感谢大家
PS:我用了getObject函数,但是Metadata还是空的
您需要像这样公开自定义 headers:
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>HEAD</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
<ExposeHeader>x-amz-meta-description</ExposeHeader>
</CORSRule>
添加 ExposeHeader 帮助我解决了问题。
元数据仍然存在缺陷,link 中提供的修复无效:2017-05-07T03:34:17.319Z
。
允许 headers Made in CORS 修复了 headers 显示在 HTTP 请求中,但不显示在回调中。我最终自己散列了 object。