노드의 신속한 컨테이너에서 파일을 가져 오려고합니다.신속한 컨테이너에서 파일을 다운로드하면 파일이 손상됩니다.
내가 (주로 this code에서 영감을) 요청을 만들기 위해이 코드를 사용하고 있습니다 :
var client = https.request(options, function(res) {
var buffers = [];
res.body='';
res.on('data', function(buffer) {
buffers.push(buffer);
});
res.on('end', function(err){
res.body = buffers.join('');
callback && callback(res);
});
});
을하면 다운로드 텍스트 파일, 거기에 아무 문제가 없습니다 만, 바이너리 데이터, 차이가 다운로드 한 파일 사이에 표시하고 원본, 몇 바이트 (mp3 파일의 경우 258) 이후.
그런 손상을 일으킬 수있는 아이디어가 있습니까?
var client = https.request(options, function(res) {
res.body='';
res.on('data', function(buffer) {
res.body+= buffer.toString('binary');
});
res.on('end', function(err){
callback && callback(res);
});
});
을하지만 그것이로 작성 : 문자 인코딩, 나는 제거해야 끝나는 문자의 datas를 병합하는 잘못된 방법, ...
갱신
는 나는 그런 일을했다 toString ('binary')이 곧 폐기 될 것이므로 최상의 해결책은 아닙니다.
콜백에서 res.body로 무엇을하고 있습니까? 그것은 바이너리 데이터입니다. 정말로 String으로 변환하지 않아야합니다. 더 좋은 해결책은 콜백에 버퍼를 전달할 수 있고 거기에 순수한 바이너리 데이터로 올바르게 처리하는 것입니다. 내 대답에 예제를 추가했습니다. 아마 도움이 될 것입니다. – CupawnTae