如何从 nodejs aws s3 getObject 回调数据中检索元数据
How to retrieve the Metadata from nodejs aws s3 getObject callback data?
我正在尝试使用 AWS 节点开发工具包将音频块文件上传/下载到 S3 或从 S3 下载。我已经尝试了 base64 方法,它工作正常。但是我无法取回我作为上传参数的一部分捆绑的元数据。
以下是上传的代码片段以及元信息:
var myMetaInfo = "AdditionalInfo", dataToUpload = {Bucket: bucketName, Key:storageFolderFullPath , Body: myAudioFile.toString('base64'), Metadata: {metaInfo: myMetaInfo}};
s3.client.putObject(dataToUpload, function(err, data) {
if (!err) {
console.log("Successfully uploaded the file to ::" + dataToUpload.Bucket);
} else {
console.log(" **** ERROR while uploading ::"+err);
}
});
这是下载文件的代码片段。元数据不是回调数据的一部分。 我尝试将回调"数据"打印到控制台,并注意到只有以下参数可用 LastModified, ContentType, ContentLength, ETag, Body, RequestId
var dataToDownload = {Bucket: bucketName, Key: storageFolderFullPath}, originalFile, myMetaInfo;
s3.client.getObject(dataToDownload, function(err, data) {
if (!err) {
originalFile = new Buffer(data.Body, 'base64');
myMetaInfo = data.Metadata.metaInfo;
console.log(" Meta info:: " + myMetaInfo);
fs.writeFile(fileStoragePath, originalFile, function(err) {
if (!err) {
console.log(" File written!! ");
} else {
console.log(" Error while writing the file !!" + err);
}
});
} else {
console.log(" **** ERROR while downloading ::"+err);
}
});
关于我的实现有什么问题的任何指示?我遵循了此处提到的文档
任何帮助,不胜感激。
你的metaInfo
值是字符串吗?
参考 sdk api 文档,Metadata
是一个字符串映射(ala ~ Metadata: {metaInfo: "myMetaInfoString"}
。我已经使用字符串作为metaInfo
的值测试了您的代码,并且它确实在data.Metadata.metaInfo
引用下正确返回。
相关文章:
- 将json回调数据转换为日期
- 如何降低此函数的复杂性,该函数根据数据类型进行回调
- 从AJAX回调函数中分离数据
- 行上的Primefaces数据表选择javascript回调
- 访问通过XHR.onreadystatechange回调中的XHR.send(data)发送的数据
- Angular 2中Observable中获取数据后的队列/回调函数
- Highcharts xAxis将格式化程序回调数据标记为空
- DimpleJS-在getTooltipText回调中获取原始数据
- Node.js,为事件分配回调函数'数据'
- 使用回调获取图像像素数据
- 试图从嵌套的回调函数返回数据
- 科尔多瓦 PhoneGap Android 回调与数据
- 将数据注入异步回调(使用 node.js)
- 如何处理在javascript中访问数据结构的两个回调
- 从 Spotify 应用程序中的回调获取专辑数据
- 了解函数(错误、数据)回调
- 如何将状态对象/数据传递给(异步)ajax 回调
- twitter引导模式——如何将数据传递给回调函数
- angularfire,对检索到的数据进行回调
- Linkedin API-数据回调IE8