Tạo torrent với các tệp từ các thư mục khác nhau từ CLI


7

Tôi có một cấu trúc thư mục trông giống như:

dirA
   fileA1
   fileA2
   ...
dirB
   fileB1
   fileB2
   ...

Tôi muốn tạo một torrent bằng các tiện ích CLI có chứa:

dirA/fileA1
dirB/fileB1

(Lưu ý: đây là một ví dụ đơn giản. Trong thực tế, có bốn thư mục và hàng ngàn tệp trong mỗi tệp và tôi muốn chọn ~ 100 tệp trong mỗi thư mục. Vì vậy, các giải pháp liên quan đến việc loại trừ các tệp cụ thể sẽ không hoạt động. )

Cho đến nay tôi đã thử:

  • ctorrent chỉ cho phép bạn chỉ định một tệp hoặc thư mục
  • mktorrent chỉ cho phép bạn chỉ định một tệp hoặc thư mục
  • truyền-tạo chỉ cho phép bạn chỉ định một tệp hoặc thư mục
  • py3torrentcreator chỉ cho phép bạn chỉ định một tệp hoặc thư mục. Nó cho phép bạn chỉ định một mẫu các tệp để loại trừ, nhưng có quá nhiều tệp khác để loại trừ chúng riêng lẻ.

Tôi cũng đã thử sử dụng các liên kết Python cho libtorrent, nhưng phương thức add_files của chúng loại bỏ các tên thư mục:

>>> 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

Có cách nào để thực hiện điều này?


Không chắc chắn nếu nó có thể được thực hiện trực tiếp, nhưng một cấu trúc thư mục tạm thời với các tệp được chọn được liên kết với các vị trí thích hợp hoạt động tốt ctorrent.
frostschutz

Câu trả lời:


6

Cách dễ nhất để làm điều này, mà tôi biết, là tạo một thư mục chứa các liên kết tượng trưng đến các tệp hoặc thư mục khác nhau mà bạn muốn thêm vào torrent.

Thêm liên kết tượng trưng vào thư mục cha
cd ~/Shared/parent-dir/
ln -s /path/to/file
ln -s /path/to/dir

Tạo
kiểm tra torrent của bạn với tạo-truyền, bạn có thể tạo một torrent mới bằng thư mục nguồn này và mỗi liên kết tượng trưng sẽ được duyệt qua.

transmission-create ~/Shared/parent-dir/

Không có cách nào để lưu trữ toàn bộ filepath trong thông tin meta của torrent cho các tệp không phải là hậu duệ của cha-dir. Khi một đồng nghiệp tải xuống torrent nhiều tệp, một thư mục được tạo bằng tên của torrent được tìm thấy trong thông tin meta của nó. Thư mục này được sử dụng làm thư mục mẹ hàng đầu nhất cho tất cả các tệp có trong thông tin meta.

Đây là đầu ra của thông tin meta cho một torrent mà tôi đã gọi bt-symlinks.torrent. Chú ý cách chỉ đường dẫn đến tập tin được lưu trữ trong các thông tin meta và họ luôn luôn bắt đầu với tên (infile) 1 sử dụng như hàng đầu của họ nhất 2 thư mục 3 .

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)

Có vẻ như đây là điều tốt nhất có thể được thực hiện với các công cụ hiện tại. Sẽ thật tuyệt nếu người tạo torrent cho phép một người tách tên torrent khỏi danh sách các đường dẫn, nhưng tôi đoán rằng nó sẽ đi vào danh sách TODO vô hạn của tôi. Cảm ơn các thủ thuật symlink - nó hoạt động tốt!
Brendan Dolan-Gavitt

Vâng, nếu chức năng đó được thêm vào máy khách để tải xuống, torrent sẽ không còn có thể giữ các tệp đó. Có lẽ khách hàng có thể cho phép bạn gửi tệp / thư mục đến các đường dẫn khác nhau và sau đó tạo liên kết tượng trưng để torrent vẫn có thể theo dõi / chia sẻ nó. Ngoài ra, tìm kiếm "thông số giao thức bittorrent" để biết thêm một số tài nguyên chuyên sâu nếu bạn muốn.
iyrin
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.