2014-10-04 3 views
0

작은 문제가 있습니다. 내 tmp 디렉토리에서 내 ftp 디렉토리로 하나의 파일을 복사하려고하면 writen 파일이 비어 있습니다. 나는 아무 잘못이 없다, 내가 무엇을 잘못하고 있는지 이해하지 못한다.nodejs writen 파일이 비어 있습니다.

var ftpPath = "/var/www/ftp/", 
    zipPath = "/var/www/tmp/", 
    file = "test"; 
fs.createReadStream(zipPath + file).pipe(fs.createWriteStream(ftpPath + file)); 

내 테스트 파일에는 loremipsum 샘플이 들어있다. 당신이 어떤 해결책을 가지고있는 경우

, 내가 그것을 가지고,이 유일한 선은

+1

을 fs.createWriteStream()가'수용'것을 스트림 인 두 번째 인수? 여기서 볼 수 없습니다 : http://nodejs.org/api/fs.html#fs_fs_createwritestream_path_options. 한 스트림을 다른 스트림으로 파이프해야하는 것처럼 보입니다. – jfriend00

+0

Ooops 이것은 실수입니다. 제 코드의 줄을 잘못 잡았습니다. 이 선은 위험한 테스트였습니다. ( – Gecko

답변

1

먼저 감사해야합니다 내 응용 프로그램 :(에서 그 버그가 그 파일 의/var/www가/tmp를/테스트는 파일이 존재, 당신은으로 스크립트를 시작하는 사용자에 대한 올바른 권한을가집니다.

둘째, 의/var/www /에서 FTP/가 쓰기 권한이 있는지 확인하십시오.

그런 다음 다음 코드는 작동합니다 :

var readerStream = fs.createReadStream('/var/www/tmp/test'); 
var writerStream = fs.createWriteStream('/var/www/ftp/test'); 
readerStream.pipe(writerStream); 

편집 :

시도 디버깅이 조각 사용 : 당신이 어떤 문서를 참조하십시오 않습니다

var data; 
var readerStream = fs.createReadStream('/var/www/tmp/test'); 
readerStream.on('data', function(data) { 
    data += data; 
}); 

readerStream.on('end', function() { 
    console.log(data); 
}); 
+0

현재 루트 계정으로 테스트를 해봤지만 해결책을 시도했지만 파일 테스트 (chmod 777)는 여전히 비어 있으며 ftp 디렉토리는 chmod 755입니다. – Gecko

+0

/var/ – xShirase

+0

또한/var/www/ftp에서 파일을 삭제하고 코드가 그것을 생성하는지 확인하십시오. 내가 요청한대로 – xShirase

관련 문제