2016-08-19 2 views
1

우리의 응용 프로그램은 이미 존재하는 ZIP 파일을 덮어 씁니다. zip 파일을 다운로드 할 수 있습니다. ZIP 생성을 위해 PHP ZipArchive를 사용합니다. PHP Zip이 원자 연산을 작성 (덮어 쓰기)합니까?

는 이제 질문 : 내가 원자 운영 및 유효한 ZIP 파일에 모든 시간 액세스 할 수있는 TMP ZIP 파일을 생성하고 원하는 다운로드 파일 이름을 이름을 변경, 또는 수행은 이미 ZipArchive의 우편 작성 과정입니다 원자?

편집 : 수면으로 분리 된 여러 개의 addFile 호출로 테스트 한 후 최종 닫기 호출시 파일이 작성되거나 덮어 쓰여진 것처럼 보입니다. 그러나 문제는 남아 있습니다. 최종 ZIP 파일 생성은 원자 적입니까?

+0

잘 모르겠지만 테스트보다 수정이 쉽습니다. 압축 프로세스를 천천히 실행하고 압축하는 동안 다른 작업으로 파일에 액세스하십시오. 손상된 파일이 있는지 확인하십시오. – BeetleJuice

+0

당신은 확실히 옳았 습니다만, 테스트는 더 빠릅니다.) 누군가 이미 그것을 알고있을 것입니다. 그렇지 않은 경우 테스트가 마지막 옵션입니다. –

+2

* "묻는 것이 테스트보다 빠릅니다."* 무례한 것입니다. 당신이 말하는 것은 당신의 시간이 당신을 도우려는 사람들의 시간보다 더 중요하다는 것입니다. –

답변

0

생성 된 ZIP 파일에 거대한 디렉토리 구조 (약 10 초의 zip 생성이 필요함)와 "watch -n 0.1 unzip -t foo.zip"으로 테스트 한 결과, ZIP 파일 생성이 원자. 적어도 ZIP 파일을 테스트하는 동안 오류가 발생하지 않았습니다.