【问题标题】:accessing serialized contents of a file访问文件的序列化内容
【发布时间】:2017-12-21 13:09:53
【问题描述】:

我正在使用

从 S3 存储桶访问 xml 文件
var params = {
  Bucket: "bucketName", 
  Key: "xmlFileName.xml"
 };

 s3.getObject(params, function(err, data) 
 {
   if (!err) 
   {
       console.log(data);
   }
}

如果我在日志中打开评论,我会得到

 2017-12-21T04:23:53.991Z   bf6be172-e606-11e7-97cb-2139c6f9555f    { AcceptRanges: 'bytes',
LastModified: 2017-12-19T01:33:35.000Z,
ContentLength: 119567,
ETag: '"88764498c11c434213fb3929235a12a5"',
ContentType: 'text/xml',
Metadata: {},
Body: <Buffer 3c 42 4c 5f 50 65 72 73 6f 6e 6e 65 6c 52 65 70 6c 69 63 61 74 65 20 78 6d 6c 6e 73 3a 69 3d 22 68 74 74 70 3a 2f 2f 77 77 77 2e 77 33 2e 6f 72 67 2f ... > } undefined

我假设正文的内容是 Xml 文件的序列化内容...现在如何将其存储在变量中?

我试过了

data.body
data[0].body

两者都以未定义的形式返回。

请指教

【问题讨论】:

  • 尝试找出什么是数据。您可以在 javascript 控制台中输入“typeof data”
  • data.body 是缓冲区尝试 data.body.toString() 可能会有所帮助

标签: javascript node.js aws-lambda


【解决方案1】:

试试 data.Body(大写字母)。它是一个缓冲区,因此您需要在解析 XML 之前将其转换为字符串 - 尝试:

var xmlString = data.Body.toString()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-12
    • 2013-11-20
    相关资源
    最近更新 更多