0

다음 코드를 사용하여 지금 xml 파일이 많은 S3 버킷에 작성하고 있습니다. 장치에 남은 공간 없음 오류가 발생합니다. 이후 업로드가 실패합니다. var/cache/tomcat8/temp 폴더에 많은 파일이 생성되는 것을 보았습니다. 내 코드를 통해 파일을 삭제합니다. 누군가 여기서 나를 잘못 이해하는 데 도움을 줄 수 있습니까? 실제로 임시 파일을 S3에 업로드하자 마자 임시 파일을 삭제하려고합니다. File.deleteOnExitdocs (강조 광산)에서AWS S3 tomcat 8의 장치에 공간이 없습니다

Path path = Files.createTempFile(filename, suffix); 
file = path.toFile(); 

Files.write(path, incomingXml.getBytes(StandardCharsets.UTF_8)); 

if(file!=null){ 
    file.deleteOnExit(); 
} 
s3client.putObject(new PutObjectRequest(fullBucketPathByDate, filename, file)); 
LOGGER.info("Upload completed"); 

답변

0

: 가상 머신이를 종료 할 때 파일 또는이 추상 패스 로 표시 디렉토리 을 삭제

요구합니다.

즉, 임시 파일은 Tomcat 프로세스를 종료 한 후에 만 ​​삭제됩니다. 파일을 S3로 업로드하는 즉시 파일을 삭제하면됩니다.

Path path = Files.createTempFile(filename, suffix); 
file = path.toFile(); 

Files.write(path, incomingXml.getBytes(StandardCharsets.UTF_8)); 

if(file!=null){ 
    s3client.putObject(new PutObjectRequest(fullBucketPathByDate, filename, file)); 
    file.delete(); 
} 
LOGGER.info("Upload completed"); 

또는 임시 파일을 사용하지 않고 파일 내용을 S3로 직접 스트리밍하는 방법을 살펴보십시오.

+0

도움을 주셔서 감사합니다! – Twisha