서버에 올라간 파일을 다시 서비스 로직을 태운 후, 완료된 파일의 경우 파일명을 변경해야했다.
원본의 경우 물리 서버에 백업본을 두고 있고, 컨테이너 내부 파일만 파일명을 변경할 것이다.
// 파일 경로
File dir = new File(resourcesLocation);
// 해당 경로 하위 파일 목록
File[] fileNameList = dir.listFiles(new FileFilter() {
@Override
public boolean accept(File dir) {
return !dir.getName().endsWith("_end.xlsx") && !dir.getName().startsWith(".");
}
});
// 파일명 변경
String newFileName =file.getAbsolutePath().split("\\.")[0];
newFileName = newFileName + "_end.xlsx";
file.renameTo(new File(newFileName));
해당 로직은 스케쥴러를 사용해 돌아가고 있다.
개발 서버 특정 디렉토리에 파일을 올려둔뒤, 컨테이너로 파일을 전송해서 테스트했다.
host → container로 파일 전송 명령어
docker cp host경로 컨테이너ID:경로
ex) docker cp /etc/work/test.xlsx 123545:/etc/work
Reference.
https://jjunn93.com/entry/Java-특정-디렉토리-파일-목록-가져오기-listlistFiles