원격 HTTP 서버에서 7zip 파일 목록보기


0

수많은 7zip (.7z) 아카이브에 캡슐화 된 테라 바이트의 데이터를 호스트하는 서버가 인터넷에 있습니다. 이 데이터 중 일부는 아니지만 전부가 흥미 롭습니다. 아카이브에서 파일 이름을 검사 할 수 있다면 어떤 데이터가 흥미로운 지 알 수 있습니다.

질문 : 원격 HTTP 서버에서 7zip 파일의 목록을 검색하려면 어떻게해야합니까? 먼저 전체 파일을 다운로드하지 않고 ?

이러한 아카이브의 크기는 메가 바이트에서 기가 바이트에 이르기 때문에 실제로 사용할 수있는 데이터가 포함되어 있지 않으면 아카이브를 다운로드하는 데 시간과 대역폭을 낭비하고 싶지 않습니다.

부록 : 나는 그 문제에 대해 다소 간략한 해결책을 생각했지만 더 쉬운 해결책이 있어야하고 다른 사람들이 똑같은 문제에 직면하게 될 것이라고 생각하지 않을 수 없다.


대부분의 압축 파일에는 그 안에 디렉토리가 있기 때문에 HTTP 범위 요청을 사용하거나 초기에 연결을 닫음으로써 파일의 처음 몇 바이트를 가져올 수 있다면 형식이 잘못되거나 불완전한 7z 파일을 갖지만 내용 목록을 추출하기에 충분한 데이터가 있어야합니다. 나는 이것을 어떻게 해야할지 모르지만 이것이 왜 대답이 아닌 주석인지에 대한 것이다.
TRiG

이것은 내가 생각해 낸 해결책이다. 더 쉬운 방법이 있는지 알고 싶었습니다. 나는 그렇지 않다.
Multimedia Mike

답변:


4

"HTTP"를 통한 클라이언트 측 방법은 사용자가 원하는 것을 용이하게합니다.

따라서 목록을 제공하는 서버가 없으면 서버의 사용자 지정 프로그래밍 및 / 또는 수동 작업이 필요합니다.


나는 쉬운 해결책이 없다고 생각했다. 그러나 나는 어쨌든 질문을 던질 것이라고 생각했다. 누구나 실제로이 작업을 수행해야 할 경우를 대비해 정리하고 게시 할 것입니다.
Multimedia Mike

1

지원하는 시스템에서이 작업을 수행하는 방법을 찾았습니다. USErspace (FUSE)의 파일 시스템 . 나는 누군가가 똑같은 것을 성취 할 필요가있을 때를 대비해 내 자신의 질문에 대답하고있다.

FUSE 모듈이 있습니다. httpfs2 HTTP URL을 마운트하여 로컬 파일 시스템의 일부인 것처럼 보이게 할 수 있습니다. httpfs2는 프로그램이 만드는 파일 시스템 읽기 호출에 대한 응답으로 원격 서버에서 특정 범위의 바이트를 가져올 수 있습니다.

Ubuntu Linux에이 도구를 설치하려면 다음을 수행하십시오.

apt-get install httpfs2

파일 시스템에 마운트 지점을 작성하십시오.

mkdir mount-point

원격 URL 탑재 :

httpfs2 http://remote.server.tld/path/archive-file.7z mount-point

이제 파일 archive-file.7z 파일 시스템의 일부인 것처럼 보입니다.

ls mount-point/archive-file.7z
7za l mount-point/archive-file.7z

디렉토리를 마운트 해제하려면 다음을 수행하십시오.

fusermount -u mount-point

이 방법을 사용하면 전체 (아마도 거대한) 아카이브를 다운로드하지 않고 HTTP 호스팅 된 아카이브의 내용을 나열 할 수 있습니다 (올바른 아카이브 도구를 사용하여 내용을 나열).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.