[英]OPT Files retrieved from S3 AWS are broken
我可以使用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();
您知道如何解決它,或者對什么地方有想法嗎?
簡短的答案-otfs需要ISO-8859-1編碼。 :)
看來問題在於otf是用ISO-8859-1編碼的,但是node沒有提供使用該格式的默認功能。 您可以只通過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();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.