문제

우리는 제어하지 않은 원격 FTP 서버에서 모니터링/다운로드 할 FTP 시스템 설정이 있습니다. 스크립트는 원격 FTP에 연결하고 서버에서 파일의 파일 이름을 잡은 다음 이미 다운로드 된 내용을 확인합니다. 다운로드되지 않은 경우 파일을 다운로드하여 목록에 추가합니다.

우리는 최근 원격 FTP쪽에있는 누군가가 거대한 단일 파일 (> 1GB)으로 복사하는 문제에 부딪쳤다. 그런 다음 스크립트는 새 파일을보고 복사되는 파일을 다운로드하기 시작합니다.

이것을 확인하는 가장 좋은 방법은 무엇입니까? 파일 크기를 몇 초 동안 대기하여 파일 크기를 다시 확인하고 파일 크기를 다시 확인하고 그것이 증가했는지 확인하지 않았는지 확인하지 않았는지 확인했습니다. 그러나 시간이 지남에 따라 단일 파일 세트마다 몇 초를 기다릴 수 없으며 파일 크기가 증가했는지 확인할 수 없습니다.

이 문제를 해결하는 가장 좋은 방법은 현재 모든 것이 Pythons ftplib를 통해 수행됩니다. 앞서 언급 한 방법을 사용하는 것 외에도 어떻게해야합니까?

그러나 다시 이것을 반복하겠습니다. 원격 FTP 사이트를 0 제어 할 수 있습니다.

감사.

업데이트 1 :

내가 이름을 바꾸려고 시도하면 무엇을 생각하고 있었는지 ... 우리는 FTP에 대한 전체 권한이 있기 때문에 파일 업로드가 진행 중이면 이름 변경 명령이 실패합니까?

여기에는 실제 옵션이 없습니다 ... 우리는?

업데이트 2 : 여기에 테스트 한 FTP 중 일부는 전송이 시작되면 공간을 자동으로 할당하는 것으로 보입니다.

예 : 200MB 파일을 FTP 서버로 전송하는 경우. FTP 서버에 연결하고 업로드가 발생하는 동안 크기를 수행하면 전송이 활성화되어 있습니다. 크기는 200MB를 보여줍니다. 파일은 10%만이 되더라도.

권한은 또한 파일이 복사 된 후 권한을 설정하는 FTP 서버를 무작위로 설정하는 것 같습니다. 다른 이전 FTP 서버 중 일부는 파일을 보내 자마자 설정합니다.

:'(

도움이 되었습니까?

해결책

“어뢰 젠장! 최고 속도!”

파일을 다운로드하십시오. 큰 파일 인 경우 다운로드가 완료된 후 시나리오에 합리적 인 한 기다리고 중지 된 시점에서 다운로드를 계속하십시오. 더 이상 다운로드 할 물건이 없을 때까지 반복하십시오.

다른 팁

당신은 서버를 0으로 제어하고 S. lott가 제안한대로 트리거 파일을 게시 할 수 없다고 말하면, 불완전한 솔루션을 처리하고 파일 크기를 비교하여 불완전한 솔루션 및 위험 불완전한 파일 전송을 처리해야합니다. 이전과 이후.

제안대로 이름을 바꾸려고 시도 할 수 있지만 0 컨트롤이 있으므로 FTP-Server-Administrator (또는 그 후임자)가 플랫폼이나 FTP 서버를 변경하지 않거나 권한을 제한하지 않음을 확신 할 수 없습니다.

죄송합니다.

여러 파일을 다루는 경우 한 번에 모든 크기의 목록을 얻고 10 초를 기다렸다가 동일한 것을 볼 수 있습니다. 여전히 동일한 사람은 다운로드하기에 안전해야합니다.

OS 사본이 언제 완료되었는지 알 수 없습니다. 속도가 느려지거나 기다릴 수 있습니다.

절대적인 확실성을 위해서는 실제로 두 파일이 필요합니다.

  • 거대한 파일.
  • 그리고 작은 트리거 파일.

그들은 원하는 모든 파일을 엉망으로 만들 수 있습니다. 그러나 트리거 파일을 터치하면 둘 다 다운로드하고 있습니다.


방아쇠를받을 수 없다면 설문 조사에 필요한 시간과 다운로드하는 데 필요한 시간의 균형을 맞춰야합니다.

이 작업을 수행.

  1. 목록을 받으십시오. 타임 스탬프를 확인하십시오.

  2. 크기를 점검하여 파일의 이전 크기. 크기가 가깝지 않으면 지금 복사 중입니다. 기다리다; 크기가 이전 크기에 가까워 질 때 까지이 단계에서 루프.

  3. 끝나지 않은 동안 :

    ㅏ. 파일을 얻으십시오.

    비. 다시 목록을 받으십시오. 새 목록, 이전 목록 및 파일의 크기를 확인하십시오. 그들이 동의한다면 : 당신은 끝났습니다. 동의하지 않으면 : 다운로드하는 동안 파일이 변경되었습니다. 당신은 끝나지 않았습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top