我可以使用Knox从AWS成功检索我的OPT文件..但是当我去使用该文件时,它已被破坏。我相信这是一个编码问题..但说实话,我不确定。
结束文件大小大于文件实际大小。
以下是一个简化示例:
var client = knox.createClient({
key: '************',
secret: '************',
bucket: '************'
});
client.get(otfFile).on('response', function(res){
var file = "";
res.setEncoding("binary");
res.on('data', function(chunk){
file += chunk;
});
res.on('end', function() {
// Save File
fs.writeFile( filepath, file, function(err) {
if (err) console.error(err);
});
});
}).end();
你知道怎么解决它或者知道出了什么问题吗?
答案 0 :(得分:-1)
简短回答 - otfs需要ISO-8859-1编码。 :)
似乎问题是otf在ISO-8859-1中编码,但节点没有提供使用该格式的默认功能。您可以通过GET获取文件,然后使用像Incov这样的软件包对其进行编码。 https://github.com/bnoordhuis/node-iconv
var client = knox.createClient({
key: '************',
secret: '************',
bucket: '************'
});
client.get(otfFile).on('response', function(res){
var file = "";
res.setEncoding("utf8");
res.on('data', function(chunk){
file += chunk;
});
res.on('end', function() {
// Encode
var iconv = new Iconv('UTF-8', 'ISO-8859-1');
file = iconv.convert(file);
// Save File
fs.writeFile( filepath, file, function(err) {
if (err) console.error(err);
});
});
}).end();