Aller au contenu

Recuperer l'espace utilisé par download station et ranger ses downloads sans perdre le seed/upload


Kazaam

Messages recommandés

Hello

J'ai remarqué (comme d'autres) que Download Station gardait tout ce qui est en partage (seed) dans un folder caché au lieu d'utiliser ce que l'on a dans le dossier de download.

Ce qui fait que l'on se retrouve avec le double des données utilisées sur le disque.... Seul avantage on peut faire ce que l'on veut de ce qu'il y a dans le dossier de download vu qu'il ne sert pas Download station, mais est ce que cela vaut la place utilisée?

Pour moi non, donc j'ai entrepris de faire quelques tests pour comprendre le fonctionnement de Download station

  • Les fichiers/dossiers

Tout se trouve sous le volume configuré pour les fichiers temporaires sous un dossier nommé "@download" qui n'est visible qu'en se mettant en root via un ssh.

Il est configuré dans las paramètres de Download Station

parametres.PNG

Sous ce dossier "@download" vous trouvez des dossiers avec un simple nombre comme nom

dossiers.PNG

Chaque dossier correspond à l'ID d'un téléchargement. Cet ID est lié à une base de données que je parlerais plus tard

Dans chacun de ses dossiers vous trouvez un fichier .torrent qui est le torrent correspondant à ce téléchargement (tracker compris), un fichier .resume qui contient les données utilisées pour la vérification du téléchargement (état, taille... et plein de choses incompréhensibles) et un fichier .filelist qui contient les fichiers à telecharger et s'ils sont dans un dossier.

Et bien sur le fichier ou dossier qui a été telechargé (elle est la la place perdue), si celui ci n'existe pas, pas de partage, le téléchargement n'est plus considéré comme complet.

L'espace à gagner se trouve dans chacun de ces dossiers

Il y a aussi un fichier de log (transmissiond.log, tient c'est étrange) qui contient le log des erreurs.

  • La base de données

Elle est au format PostgreSQL egt n'est pas accessible par defaut, il faut faire quelques modifs que l'on trouve sur le net pour y acceder.

Elle contient les téléchargement, leur nom, statuts, taille...., dans mon cas, la seule utilité est de faire correspondre les ID et les noms de dossier, mais sinon vous trouverez l'info dans le fichier .filelist (plus long mais sans besoin de faire de modifs du systeme)

  • Gagner de l'espace disque

On arrive à notre but, après un simple test avec des symlinks, Download station n'y voit que du feu, par contre il faut le faire manuellement pour chaque dossier en le faisant pointer vers celui du repertoire download.

C'est long et pas très pratique, donc voila un premier jet de script pour faire ça :

Attention : Avant de lancer le script il faut être sur que tous les téléchargements sont terminés ou ils seront perdus. Il faut aussi mettre en pause tout le contenu de download station afin qu'il relance ses vérifications de fichier a sa remise en marche, sinon tout passera en erreur ou il n'y aura plus aucun upload

#!/bin/bash

function checklink {

#look download folder to find destination
  mdest=$(find /volume1/Download/ -name "$1")
  echo $mdest
  if [ -z "$mdest" ]; then echo "$1"; echo "$2"; read -n1 -r -p "Press any key to continue..." key 
  else
  echo "traitement"
  rm -R "$2/$mdown"
  rm -R $2/*.resume
  ln -s "$mdest" "$2/$1"
  fi
}

cd /volume1/\@download

#get list of listfile in download station
liste=$(find ./ -name "*.filelist")

#cut result to get first occurency
 mfile=$(echo $liste | cut -d " " -f1)
 i=1
 
#loop until end of list
until [ -z $mfile ]; do
  #get downloaded file name or folder
  mdown=$(tail -n 3 $mfile |grep name|cut -d':' -f1- |awk -F'"' '{print $4}')

  mcurdir=$(dirname $mfile)

  #check if symlink exists
  mlink=$(readlink "$mcurdir/$mdown")
  if [ -z "$mlink" ]; then checklink "$mdown" "$mcurdir"; fi
  #read -n1 -r -p "Press any key to continue..." key  
  let i=i+1 
  mfile=$(echo $liste | cut -d " " -f$i)          
done

Il n'est pas parfait dans le sens ou je n'ai pas géré les caractères réservés (genre [] ) et que les fichiers avec des accents donnent des résultats étranges vu que Download station et Linux ne sont pas dans le même format (c'est hyper logique)

Le script va vérifier chaque dossier du répertoire @download pour voir si le contenu téléchargé est situé ici ou ailleurs via un symlink.
Dans le cas ou le contenu est local, il va  lire le fichier .filelist pour extraire le nom du dossier/fichier et le rechercher dans le répertoire download. Une fois identifié, il supprime le contenu local et crée le lien.

Dans le cas ou il ne trouve pas les données dans le dossier download, le script se met en pause en affichant ou il y a eu un soucis

Le coté positif :
on gagne pas mal d'espace
on peut ranger dans des sous dossier sans soucis (genre mettre une série dans un dossier commun)

Le coté négatif :
Il faut faire revérifier chaque téléchargement par Download Station (c'est long la premiere fois, apres ca reste jouable)
Le script ne doit pas être utilisé pendant un téléchargement ou  il faudra reprendre le téléchargement à 0
Le fait de ne pas prendre les caractere spéciaux et les accents gene mais dans mon cas c'etait 3 fichiers sur 170... donc assez faible

 

Vu que c'est deja fonctionnel pourquoi Synology ne le fait pas par défaut ?

Je vais me pencher sur cette histoire de caractères non gérés, en tous cas je confirme que l'upload fonctionne toujours

up.PNG

Bonne journée :mrgreen:

 

Edit1 : Correction du script pour des erreurs de gestion d'espaces dans les noms

Modifié par Kazaam
Lien vers le commentaire
Partager sur d’autres sites

J'ai du mal à comprendre l'utilité puisque DownloadStation utilise déjà des liens durs entre le fichier téléchargé (visible dans le répertoire de destination de DownloadStation) et le fichier seedé (celui nommé dans ce thread comme 'caché').

Donc ceci "Ce qui fait que l'on se retrouve avec le double des données utilisées sur le disque.... " est faux.

Le fichier existe à 2 endroits différents mais l'espace occupé n'est pas doublé.

Modifié par lordtaki
ajout explication
Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...
Le 16/12/2016 à 10:58, lordtaki a dit :

J'ai du mal à comprendre l'utilité puisque DownloadStation utilise déjà des liens durs entre le fichier téléchargé

Je confirme, c'es des hardlink (lien dur) depuis ... le début de download station je pense

Utilité : juste avoir un risque de tout planté avec des manip plus que hasardeuses ... 

en plus transformé des hardlink en softlink prennent + de place sur le disk :lol:

Modifié par gaetan.cambier
Lien vers le commentaire
Partager sur d’autres sites

Arg ou plus simple

readlink FILE; echo $?

j'avais pas le echo donc ca ne donnait rien....

Ok pour le hardlink mais alors comment faire reprendre un torrent a download station?

Si j'en supprime un, que je recharge le torrent, impossible de le reassocier au fichier existant, il veut le retelecharger

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.