PHP 편집기는 개발자가 한 디렉터리에서 다른 디렉터리로 파일을 이동하는 작업을 처리하는 데 도움이 될 수 있는 강력한 프레임워크로 Spring SFTP 통합을 도입합니다. 로컬 서버에서든 원격 서버에서든 이 프레임워크를 사용하면 파일을 쉽게 이동하고 관리할 수 있습니다. 개발자가 파일 이동 논리를 사용자 정의하고 다양한 예외를 처리할 수 있는 일련의 API 및 구성 옵션을 제공합니다. 엔터프라이즈 수준 애플리케이션이든 개인 프로젝트이든 Spring SFTP 통합은 살펴볼 가치가 있는 매우 실용적인 도구입니다.
스프링 인터게이션이 처음입니다. user1/upload 디렉토리의 sftp 서버에서 파일을 처리한 다음 user1/processed 디렉토리로 이동해야 합니다. 내 코드는 일반적으로 잘 작동하지만 두 가지 문제가 있습니다.
애플리케이션을 다시 시작하면 user1/processed 디렉터리와 이전에 존재했던 모든 파일이 삭제됩니다. 매번 디렉토리를 지우지 않고 거기에 더 많은 파일을 쓰고 싶습니다.
애플리케이션을 시작할 때마다 파일을 받습니다(파일 이름을 보고 콘솔에 인쇄함). 처리된 디렉터리로 이동된 오래된 파일을 받습니다. Winscp와 같은 다른 도구를 통해 SFTP에 연결할 때 이러한 파일이 표시되지 않기 때문에 이것은 정말 이상해 보입니다. 이전 파일 목록이 어딘가에 적용되어 있습니까?
도와주셔서 감사합니다!
복사 후 원격 서버에서 파일 이름을 바꾸거나 이동하는 sftp의 spring 통합 예제를 살펴보았는데 많은 도움이 되었습니다
공식 spring intergation sftp 문서도 확인했습니다
시작 시 원격 디렉터리를 지우는 방법을 잘 모르겠습니다. 이 동작은 사용자 쪽에서 디버깅해야 합니다. 하지만 오래된 파일이 표시되는 이유를 알려드릴 수 있습니다. 처리 후 원격으로 이름을 바꾸지만 파일의 로컬 복사본은 여전히 source.setLocalDirectory(new File("/tmp/local"));
에 저장됩니다. 이름 변경이나 재부팅을 마친 후에는 정리를 고려해보세요.
로직을 교체하기 위해 SftpStreamingMessageSource
를 확인할 수도 있습니다: https://docs.spring.io/spring-integration/reference/sftp/streaming.html
위 내용은 Spring SFTP Intergation:파일을 다른 디렉토리로 이동 처리의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!