qbittorrent / qBittorrent

qBittorrent BitTorrent client
https://www.qbittorrent.org
Other
27.06k stars 3.89k forks source link

Choose storage provider to qBittorrent #19341

Open ghost opened 1 year ago

ghost commented 1 year ago

Suggestion

Whenever I open qBittorrent, the torrent locally downloads the file on my machine. An interesting idea is to offer options like ipfs, hypercore or ftp - or even synchronizations like google drive, meganzco, dropbox, trezorit etc. That way, when the file for download, a copy is sent to another server or another location, and with that I have a backup copy or storage(for security) to torrent files.

Use case

  1. Backup: This allows you to have a backup copy of the torrent file on an external server or external storage service as google drive, meganzco, dropbox, trezorit etc "that you trust" for greater control, privacy and security instead of storing the file locally on your machine.
  2. Download: Download files to a secured cloud.

Extra info/examples/attachments

Picotorrent: There is a closed edition on picotorrent with this feature: Choose location or storage provider in PicoTorrent.

Alternative to [bitport-io]: Bitport is a cloud solution that downloads the torrent file anonymously, privately. Could be an alternative to bitport-io for qBittorrent. Instead of relying on a private server or company. Rely only on support for storage sync plugins to torrent file backup or download.

luzpaz commented 1 year ago

@catsuns cool! how do you propose to add this feature ?

glassez commented 1 year ago

I would like to check other people's opinion if this feature can be implemented.

I'm not sure I understood correctly what exactly you're suggesting, but if it's something that applies to files after the download is finished, then it can be done by some separate program/script (i.e. I don't like the idea of having this functionality as integral part of qBittorrent).

Kolcha commented 1 year ago

if it's something that applies to files after the download is finished, then it can be done by some separate program/script

+1 for this, some time ago I made torrent files backup to dropbox (even with free account) using rclone, it can work with a lot number of cloud storage providers. what about downloading (or better copying downloaded files) to some cloud storage, almost any service provides client which emulates drive for premium accounts (which you very likely will have as so as interested in large amount of storage), so it can be used directly, no any integration is required. please note, drives emulated by such clients usually (but not strictly always) "don't like" random io (i.e. torrent download directly to emulated drive) or even may not support it at all. also this random io may cause excessive traffic or even io errors or data corruption. this is because of what is behind such clients: something like FUSE on the user side, object storage + parser (for FS emulation) on the server side, and API is stateless and designed only for static objects storage (expected, taking into account whats behind it), not for "live file streams".

even more, qBittorrent doesn't write downloaded files by itself, this is handled by libtorrent. so, to download something directly to some cloud, that cloud interaction logic must be integrated into libtorrent (don't know is it possible to do so on app side), and if it is done properly, it will work fine with "object storage + parser" backend. but this requires both deep knowledge in libtorrent internals (and maybe torrent protocol itself) + selected cloud storage provider. in any case this is not trivial and definitely not for end-user app. such things should be run on servers with very good upload bandwidth.

so, copying downloaded files is the only option, and this is can be achieved with external tools/scripts in many ways.

Scripter17 commented 1 year ago

rclone mount seems to perfectly fix this

It has the ability to mount external storage providers (FTP, google drive, mega and pretty much everything else except icloud) as effectively a normal folder

While I haven't tested this, I doubt downloading torrents directly into remote hosts will at all behave nicely. Writing into the middle of a file is an uncommon enough procedure that I'd assume most cloud hosts don't bother handling it. Most likely the best option would be rclone syncing already completed torrents

ghost commented 3 months ago

Can we therefore close this issue?