• 1.0.1

    대용량 다운로드가 Cloudflare 경유 중 끊길 때 자동으로 복구하도록 고친 patch 릴리스입니다. 설정 변경은 필요 없습니다.

    배경

    94GB 공유 폴더를 실제로 받아 보며 끊김을 기록했습니다. 한 연결이 1~6분마다 끊겼고, 원인은 모두 Cloudflare 경로였습니다.

    • 끊김 증상: TCP 리셋, Cloudflare의 HTTP/2 스트림 리셋(INTERNAL_ERROR), TLS 레코드 손상(bad record mac).
    • 가장 나쁜 경우: 서버 쪽 요청만 끊고 받는 쪽 연결은 데이터 없이 열어 둡니다. 브라우저 다운로드가 0B/s로 멈춰 직접 "다시 시작"을 눌러야 합니다.
    • 같은 회선에서도 연결마다 Cloudflare 데이터센터가 바뀝니다(HKG·NRT·LAX·PDX·SEA). 속도도 1~60MB/s로 크게 다릅니다.
    • NAS 안에서는 끊김이 없었습니다: Node에 직접, DSM nginx(HTTP/2)를 거쳐 각각 450초씩 받았습니다.

    변경

    • 공유 페이지: Chrome·Edge에서는 "폴더째 받기"가 기본 버튼입니다. 끊기거나 멈추면 알아서 이어받습니다. ZIP은 보조 버튼입니다.
    • 폴더째 받기: 30초 동안 데이터가 없으면 멈춘 연결로 보고 다시 연결합니다(이전 60초). 진행 없이 연속 10회까지 재시도합니다(이전 6회).
    • 로그: 중간에 끊긴 응답을 보낸 양과 함께 기록합니다. (1.0.0 이후 반영)

    검증

    • ZIP 실다운로드: 94GB를 받는 동안 10번 끊겼고, 매번 끊긴 지점부터 이어받아 완료했습니다. 53개 파일 CRC 전부 정상.
    • 브라우저 테스트: 한 파일에서 9번 끊어도 이어서 완료했습니다. 응답 없이 멈춘 요청은 31초 만에 다시 연결했습니다.

    이미지

    git.2ex.dev/hanyul/webdav:1.0.1 / latest: sha256:a19e3ab8ca377886948381fb36a61b5f7f2f0fb57c6d665bf525f267e744f30d

    릴리스 소스: 60f3e7238a4e5aeda57b65bfce1fd5b64a732e1b

    1.0.0 이후 전체 변경 비교

    Downloads 2