尝试从dockerode读取文件返回不需要的编码字符?

wfsdck30  于 2023-05-28  发布在  Docker
关注(0)|答案(1)|浏览(127)

我使用dockerode和使用cat命令的读流来解析文件的内容,但是我也得到了编码的字符,我假设它们是用于定义文件格式的。我知道我可以通过从字符串的开头删除x字符来删除它们,尽管我觉得可能有一种更好更安全的方法来正确阅读文件。

container.exec({
  Cmd: ['sh', '-c', 'cat /myfile.json'],
  AttachStdin: true,
  AttachStdout: true,
  AttachStderr: true,
}, (err, exec) => {
  exec.start({
    stdin: true
  }, (err, stream) => {
    if (err) {
      return res.status(500).json({
        success: false,
        message: 'Error reading file.',
      });
    }
    let data = '';
    stream.on('data', (chunk) => {
      data += chunk;
    });
    stream.on('end', () => {
      return res.status(200).json({
        success: true,
        data
      });
    });
  });
});

文件的原始内容是[],但它返回\x01\x00\x00\x00\x00\x00\x00\x02[]
我怎么能只得到[]的内容而不使用类似于子字符串的方法?

xytpbqjk

xytpbqjk1#

我找不到其他的解决方案,substringing前八个字符,甚至使用stream#setEncoding。如果任何人有更好的解决方案,请随时在这里张贴,因为这仍然是普遍未解决的,应该被视为一个黑客的废话。

相关问题