mysql元数据 nodejs,javascript – 如何从nodejs aws s3 getObject回调数据中检索元数据?...

我正在尝试使用AWS节点SDK上传/下载音频块文件到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);

}

});

有关我的实现有什么问题的指示?我已经按照here提到的文档

任何帮助表示赞赏.

解决方法:

你的metaInfo值是一个字符串吗?

引用sdk api docs,Metadata是一个字符串映射(ala~Metadata:{metaInfo:“myMetaInfoString”}.我已经使用字符串作为metaInfo的值测试了您的代码,它确实在data.Metadata.metaInfo参考下正确返回.

标签:javascript,node-js,amazon-web-services,amazon-s3

来源: https://codeday.me/bug/20191006/1862931.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值