2017-03-19 2 views
0

보고서를 생성하고 내 웹 프로젝트 폴더의 폴더에 저장하는 내 로컬 컴퓨터 (mac os x)에 응용 프로그램을 만들었습니다. 앱을 배포 할 때이 폴더도 게시해야합니다. 허락하면, 아무도이 폴더가 아니라 앱에 액세스 할 수 있어야합니다. 보고서를 생성하는 코드를 로컬 컴퓨터에서 제대로 실행하면 탄력적 인 beanstalk에 멈추는 것처럼 보입니다. 탄력있는 콩팥 환경에서이 작업을하려면 무엇을해야합니까?탄성 Beanstalk : 내 node.js 프로젝트 폴더의 폴더에 파일을 쓰는 방법

요컨대, phantomjs를 사용하여 동적 웹 페이지를 pdf 파일로 변환하여 관련 당사자에게 전자 메일로 전송합니다. 다음은 파일을 생성하는 코드입니다.

page.viewportSize = { width: 2000, height: 800 }; 
//page.paperSize = { format: 'Letter', orientation: 'landscape', margin: '1cm' }; 
page.paperSize = { width: '1280px', height: '800px', margin: '0px' }; 
page.settings.localToRemoteUrlAccessEnabled = true; 
page.settings.loadImages = true; 
page.settings.javascriptEnabled = true; 


page.open("http://example.com/report/" + args[1], function start(status) { 
    if (status === 'fail'){ 
     phantom.exit(1); 
     return; 
    } 

//page.render('/dev/stdout', { format: 'pdf' }); 
    page.render(fs.workingDirectory + '/tmp/' + args[3], { format: 'pdf' }); 
    phantom.exit(); 
    return; 
}); 

답변

1

ElasticBeanstalk 응용 프로그램이 배포 된 디렉토리는 배포가 완료된 후 읽기 전용으로 간주되어야합니다. 런타임에 파일을 작성해야하는 경우 /tmp과 같은 쓰기 가능한 디렉토리를 사용해야합니다.

+0

이 폴더를 쓰기 가능하도록 추가 할 수있는 곳은 어디입니까? – user1790300

+0

이 작업을 수행하려면 원격 데스크톱을 컴퓨터에 설치해야합니까? – user1790300

+0

EB 서버가 linux를 실행하고 있다면 기본적으로'/ tmp'가 자동으로 사용 가능하고 세계 기록 가능해야합니다. 그러나 디렉토리 이름을 하드 코딩하는 대신'os.tmpdir()'과 같은 Node 메소드를 사용하는 것이 더 합리적 일 것입니다. – Brian