내 디렉터리 구조는 다음과 같습니다.
dirA
fileA1
fileA2
...
dirB
fileB1
fileB2
...
CLI 유틸리티를 사용하여 다음이 포함된 토렌트를 생성하고 싶습니다.
dirA/fileA1
dirB/fileB1
(참고: 이것은 단순화된 예입니다. 실제로 각 디렉터리에는 4개의 디렉터리와 수천 개의 파일이 있으며 각 디렉터리에서 약 100개의 파일을 선택하려고 합니다. 따라서 단순히 특정 파일을 제외하는 솔루션은 시작되지 않습니다.)
내가 지금까지 시도한 것 :
- 급류단일 파일이나 디렉터리만 지정할 수 있습니다.
- 급류단일 파일이나 디렉터리만 지정할 수 있습니다.
- 전송 생성단일 파일이나 디렉터리만 지정할 수 있습니다.
- py3torrentcreator단일 파일이나 디렉터리만 지정할 수 있습니다. 제외할 파일 패턴을 지정할 수 있지만 개별적으로 제외하기에는 다른 파일이 너무 많습니다.
또한 Python 바인딩을 사용해 보았지만 libtorrent
해당 add_files 메소드는 디렉토리 이름을 제거합니다.
>>> import libtorrent as lt
>>> fs = lt.file_storage()
>>> lt.add_files(fs, 'dirA/fileA1')
>>> lt.add_files(fs, 'dirB/fileB1')
>>> print fs.at(0).path
fileA1
>>> t = lt.create_torrent(fs)
>>> lt.set_piece_hashes(t, '.')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
RuntimeError: No such file or directory
이를 수행할 수 있는 방법이 있습니까?
답변1
내가 아는 한, 가장 쉬운 방법은 토렌트에 추가하려는 다양한 파일이나 디렉터리에 대한 심볼릭 링크가 포함된 디렉터리를 만드는 것입니다.
상위 디렉토리에 심볼릭 링크 추가
cd ~/Shared/parent-dir/
ln -s /path/to/file
ln -s /path/to/dir
당신의 씨앗을 만들어보세요
Transmission-create를 사용하여 테스트하면 이 소스 폴더로 새 토렌트를 생성할 수 있으며 모든 심볼릭 링크가 통과됩니다.
transmission-create ~/Shared/parent-dir/
상위 디렉터리의 하위 항목이 아닌 파일에 대한 전체 파일 경로는 토렌트의 메타 정보에 저장할 수 없습니다. 피어가 다중 파일 토렌트를 다운로드하면 메타정보에 있는 토렌트 이름을 사용하여 디렉터리가 생성됩니다. 이 디렉터리는 메타정보에 포함된 모든 파일의 최상위 상위 디렉터리 역할을 합니다.
제가 호출한 토렌트에 대한 메타정보의 출력입니다 bt-symlinks.torrent
. 파일 경로만 메타 정보에 저장되며 항상 이름(infile)으로 시작됩니다.1그들의 최상위로 사용2목차삼.
transmission-show bt-symlinks.torrent
Name: bt-symlinks
File: .torrent
GENERAL
Name: bt-symlinks
Hash: 35af9b734284f9259763defe6095424fe3b79b42
Created by: Transmission/2.82 (14160)
Created on: Sat Dec 27 12:04:59 2014
Piece Count: 2357
Piece Size: 64.00 KiB
Total Size: 154.4 MB
Privacy: Public torrent
TRACKERS
FILES
bt-symlinks/bt-symlinks.torrent (57.40 kB)
bt-symlinks/gifs/Bill-Cosby-Jell-o-GIF.gif (810.3 kB)
bt-symlinks/gifs/Firefly_Lantern_Animation_by_ProdigyBombay.gif (485.2 kB)
bt-symlinks/gifs/L-cake.gif (455.2 kB)
bt-symlinks/gifs/L-sweets.gif (871.0 kB)
bt-symlinks/gifs/Metroid (NES) Music - Kraids Hideout.mp4 (4.16 MB)
bt-symlinks/gifs/Phantasy Star II_Mother Brain.gif (530.5 kB)
답변2
torrenttools를 사용하여 적절한 정규식 패턴을 --include 옵션에 전달하면 이 작업을 수행할 수 있습니다.
torrenttools create --include ".*dirA/fileA1" ".*dirB/fileB1" dir
바라보다:https://github.com/fbdtemme/torrenttools
면책조항: 저는 이 도구의 작성자입니다.