Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#101 Le 22/05/2019, à 17:32

Zakhar

Re : [1fichier] "Montez" votre stockage 1fichier en une commande simple !

(22 Mai 2019) Version 1.2.2

Nouveautés par rapport à la 1.2.1

  • Bug : le contenu des répertoires partagés s'affiche désormais correctement


Faut-il mettre à jour : si vous n'avez partagé aucun de vos répertoires 1fichier avec quelqu'un d'autre, la mise à jour n'a aucun intérêt pour vous. Ce bug existe depuis le début, c'est le "parsing" JSON qui est mal fait dans le cas où on a un "shares" dans le retour de l'API, provoquant un affichage aléatoire des fichiers du répertoire, et les sous-dossiers du dossier partagé ne sont jamais affichés.

Dernière modification par Zakhar (Le 22/05/2019, à 17:34)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#102 Le 27/05/2019, à 14:26

Zakhar

Re : [1fichier] "Montez" votre stockage 1fichier en une commande simple !

jaxx21 a écrit :

Merci pour toutes ces belles infos.
Sinon, pour les statistiques, c'est qu'on y pense pas. Je pensais pas qu'on pouvait faire gérer ça aussi avec ton driver. ca fait des longs chiffres.Peut être qu'il y aura ensuite les Go ou Mo et les heures,min, ou sec.en tout cas, gros dossier encore.

Oui, c'est amélioré, voici ce que ça donne maintenant :

$ cat 1fichier/.stats
Uptime: 00:05:25

Readers:
     Down.  Nb. Req  Avg Time  Max Time   Ref  Qu  Nb. Err Speed Av.Sp
[00]  450M     3607    0.0201    2.9487 (   1)  2        0 35.3M 34.6M
[01]  141K       18    0.5087    2.7480  idle   0        0     0 20.1K
[02] 31.4M      272    0.0437    2.6544 (   2)  2        0 1.84M 1.12M
[03]  162K       19    0.4692    2.7382 (   2)  0        0     0 23.2K
----------------------------------------------------------------------
Tot.  482M     3916    0.0262    2.9487         4        0 37.1M 8.77M

API:
                        Nb. Req  Avg Time  Max Time Retry Nb. Err
folder/ls.cgi         :       4    0.1986    0.3255     0       0
download/get_token.cgi:       2    0.1412    0.1419     0       0
user/info.cgi         :       1    2.1307    2.1307     0       0
-----------------------------------------------------------------
Total                 :       7    0.4582    2.1307     0       0

Live streams:
  Ref   Size  Left Lnk Er Loc Stm Path
(   1) 34.9G 24:36   2      1   2 /.crypt/aFzSkQU-2euzGhZsYT7f0nNL/KOMpYD-smw9ihagHjrL9TUPLgMFSgWyzml2qIMvs34gsz5JDmu7YB8yswB3LmI8rd5A
(   2)  866M 25:02   3      1  12 /Vidéos/big_buck_bunny_1080p_stereo.ogg

Publication prochaine...

Dernière modification par Zakhar (Le 27/05/2019, à 15:43)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#103 Le 28/05/2019, à 10:45

jaxx21

Re : [1fichier] "Montez" votre stockage 1fichier en une commande simple !

Ha niquel,même le nombre de requête api. Merci smile

Hors ligne

#104 Le 28/05/2019, à 10:55

Zakhar

Re : [1fichier] "Montez" votre stockage 1fichier en une commande simple !

Et ça me permet de debugger les comportement anormaux aussi ! big_smile

Il y avait un bug dans le "moteur" en cas de charge importante, et je vois des "optimisations" à faire pour le cas où on fait une copie, on abandonne, et on recommence.

Le "bug" ne corrompt pas les données, mais peut rendre parfois "Erreur d'entrée/sortie"... fâcheux !

... mais bon, il faudra que je pense à mettre aussi ma clé privée sur mon PC portable, parce que là je ne peux pas packager sans cela... donc ça va attendre quelques jours.

Dernière modification par Zakhar (Le 30/05/2019, à 20:57)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#105 Le 03/06/2019, à 13:35

bingox

Re : [1fichier] "Montez" votre stockage 1fichier en une commande simple !

Bonjour , a propos de 1fichier , comment puis je savoir quels fichier sont dans le cold storage ? et y a t il un astuce pour ne pas avoir ses fichiers dans le cold storage (et peut etre supprimés !) ?

Hors ligne

#106 Le 03/06/2019, à 17:19

Zakhar

Re : [1fichier] "Montez" votre stockage 1fichier en une commande simple !

bingox a écrit :

Bonjour , a propos de 1fichier , comment puis je savoir quels fichier sont dans le cold storage ?

find 1fichier -type f -mtime +60

Va t'afficher la liste de tous les fichiers dans le "cold" de façon approximative, car l'algorithme de bascule en cold ne tourne qu'un fois par jour, à l'heure que tu récupères dans "info.cgi". La liste là est calculée à l'heure de la commande, et il y a donc potentiellement des fichiers qu'elle va t'indiquer "Cold" qui ne le sont pas, mais en gros tu peux calculer la taille ça tombe juste à quelques fichiers près.

bingox a écrit :

(et peut etre supprimés !) ?

Les fichiers dans le "cold" ne sont jamais supprimés tant que tu restes dans le quota. Au delà, il faut soit payer le quota supplémentaire, soit faire le ménage.
L'option de "suppression automatique" est entièrement à la main des utilisateurs, et permet précisément de faire le ménage plus facilement qu'à la main si on préfère la solution de suppression au paiement de l'espace supplémentaire utilisé.

Personnellement, j'ai déjà décidé que si je passe en "over-quota" (j'utilise comme sauvegarde de mes données personnelles), je payerai le quota supplémentaire parce que ça ne fait pas de sens de supprimer des sauvegardes !..
Le prix est très concurrentiel par rapport à l'achat et à la gestion de son propre support de stockage.

Dernière modification par Zakhar (Le 03/06/2019, à 21:52)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#107 Le 03/06/2019, à 20:35

Zakhar

Re : [1fichier] "Montez" votre stockage 1fichier en une commande simple !

(3 Juin 2019) Version 1.3.1

Nouveautés par rapport à la 1.2.2

  • Bug : le driver pouvait dans certains cas renvoyer à tort "erreur d'entrée/sortie".

  • Optimisation : les "streams" ne sont conservés que 45 secondes (au lieu de 5 minutes). En réalité, au delà de la minute, la reprise sur un stream muet donne un temps d'attente inexplicable (y compris par la team 1fichier) d'une 20aine de secondes. Dans ces conditions, il est préférable d'ouvrir un nouveau stream ce qui met en général moins de 3 secondes. D'où le nouveau time-out.

  • Nouveautés : statistiques. Sur le même mode que le "refresh-file", vous pouvez déclarer un fichier statistiques et constater tout plein de choses à propos du fonctionnement du driver

  • Documentation : mise à jour pour détailler les statistiques.


Exemples pour les statistiques :

$ 1fichierfs --api-key=@~/.1fichier.key --stat-file=.stats ~/1fichier
$ cat ~/1fichier/.stats
Uptime: 01:10:19

Readers:
     Down. N.Req  Avg Time  Max Time   Ref  Qu N.Err Speed Av.Sp
[01]  206M  1659    0.0014    0.3175  idle   0     0     0  543K
[02] 69.2M   566    0.0014    0.1263  idle   0     0     0  616K
[03]  175M  1408    0.0040    2.1086  idle   0     0     0  513K
[04]  310M  2488    0.0007    0.1753 (   1)  1     0 1.04M  512K
----------------------------------------------------------------
Tot.  760M  6121    0.0017    2.1086         1     0 1.04M  532K

API:
                        N.Req  Avg Time  Max Time Retry N.Err
folder/ls.cgi         :    29    0.6655    2.3017     0     0
download/get_token.cgi:     3    0.1522    0.1563     0     0
user/info.cgi         :     2    1.1783    2.1851     0     1
--------------------------------------------------------------
Total                 :    34    0.6504    2.3017     0     1

         Trig. Timer   API Error   Total
Refresh:     0     2     0     0       2

             Number Memory
Allocations:  54901  8260K
Frees      :  54699  7822K
Difference :    202   438K

Live streams:
  Ref   Size  Left Lnk Er N.Loc N.Stm Path
(   1)  745M 12:47   2        2    17 /Vidéos/big_bucks_bunny.ogg
(   2) 2206M 00:00   0        1     2 /.crypt/I,-S6Q,wINReRoToGzQed,Eh/GyaC8v--Kxv-VsHLoFoZgMDl/ivEwsQqb8oPE4a5t8G24VxW4994MkrjvkeoRvgKcntfAJ,2zGYKU5z,,HU3TCd1tpLhTBrkN6DtTM9eCFf05zE5E

Vous pouvez aussi afficher les statistiques en permanence dans un terminal de la façon suivante  (dans l'exemple avec rafraîchissement toutes les 3 secondes; CTRL+C pour terminer) :

$ watch -n3 cat ~/1fichier/.stats

Faut-il mettre à jour : Oui !
Même si vous ne comptez pas utiliser les statistiques, la mise à jour est conseillée. En effet, le bug corrigé risque de vous arriver si vous "chargez" un peu le driver en faisant des lectures en parallèle. Et c'est toujours stressant d'avoir "erreur d'entrée/sortie" quand on récupère une sauvegarde... même s'il y a toutes les chances que ça passe au deuxième coup quand vous "calmez" les accès en parallèle au driver.
Par ailleurs l'optimisation vous permettra par exemple de diminuer la cache de VLC de 30 secondes (mon réglage actuel pour éviter les "freeze" après une pause d'un film) à un truc plus raisonnable comme 5 secondes.

Dernière modification par Zakhar (Le 03/06/2019, à 20:56)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#108 Le 07/06/2019, à 10:26

jaxx21

Re : [1fichier] "Montez" votre stockage 1fichier en une commande simple !

Merci pour ce suivi et ce travail de fou !!! J'ai mis à jour pour ma part.

Dernière modification par jaxx21 (Le 07/06/2019, à 10:29)

Hors ligne

#109 Le 07/06/2019, à 16:59

Zakhar

Re : [1fichier] "Montez" votre stockage 1fichier en une commande simple !

jaxx21 a écrit :

Merci pour ce suivi et ce travail de fou !!! J'ai mis à jour pour ma part.

C'est pas fini, les statistiques ça prépare la partie "write" qui est encore plus "de fou" à cause du fait que côté serveur il n'ont pas fait grand chose pour aider au "write" !.. roll

@Jaxx21 : sondage as-tu activé les statistiques en rajoutant à la commande de lancement --stat-file=stats (ou équivalent) ? En fait les statistiques, en dehors de debugger, pour la partie "read" c'est juste de la curiosité.

Dernière modification par Zakhar (Le 07/06/2019, à 17:01)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#110 Le 08/06/2019, à 08:52

jaxx21

Re : [1fichier] "Montez" votre stockage 1fichier en une commande simple !

@Jaxx21 : sondage as-tu activé les statistiques en rajoutant à la commande de lancement --stat-file=stats (ou équivalent) ? En fait les statistiques, en dehors de debugger, pour la partie "read" c'est juste de la curiosité.

Et bien moi , ma ligne de tout les jours est:

root@vps646287:~# 1fichierfs --api-key=XXXXXXXXXXXXXXXXXXXXXXXX -o allow_other /home/ubuntu/1fichier

et ca marche super pour mon plex.

ensuite, si j'ajoute ta commande:

1fichierfs --api-key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXX -o allow_other --stat-file=.stats /home/ubuntu/1fichier

il me met:

Segmentation fault (core dumped)

je dois pas mettre la bonne commande au bon endroit.

Hors ligne

#111 Le 08/06/2019, à 08:55

Zakhar

Re : [1fichier] "Montez" votre stockage 1fichier en une commande simple !

jaxx21 a écrit :

ensuite, si j'ajoute ta commande:

1fichierfs --api-key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXX -o allow_other --stat-file=.stats /home/ubuntu/1fichier

il me met:

Segmentation fault (core dumped)

je dois pas mettre la bonne commande au bon endroit.

Je vais regarder ça, peut-être une interférence avec allow_other. Tu es en quelle version d'ubuntu sur ton serveur ? 18.04 64 bits ?

(Pas besoin de debug... effectivement je le reproduis avec moins de paramètres que je n'utilise habituellement, je regarde ça !)

Dernière modification par Zakhar (Le 08/06/2019, à 09:03)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#112 Le 08/06/2019, à 09:05

jaxx21

Re : [1fichier] "Montez" votre stockage 1fichier en une commande simple !

Oui je suis sous Ubuntu 18.04.2 LTS (GNU/Linux 4.15.0-50-generic x86_64) (VPS de chez OVH)

et dans le debug.txt il y a:

[1fichierfs     0.000] NOTICE: started: Saturday  8 June 2019 at 10:03:10
[1fichierfs     0.000] NOTICE: successfuly parsed arguments.
[1fichierfs     0.000] INFO: log level is 7.
[1fichierfs     0.000] INFO: user_agent=1fichierfs/1.3.1
[1fichierfs     0.000] INFO: adding options=-orw,fsname=1fichier.com,subtype=1fichierfs
[1fichierfs     0.004] DEBUG: init_dir: `/` (id=0)
[1fichierfs     0.004] DEBUG: lock 999
[1fichierfs     0.004] INFO: <<< API(in) (iReq:1) folder/ls.cgi POST={"folder_id":0,"files":1} name=/
[1fichierfs     0.124] INFO: >>> API(out) (iReq:1) retry=0 json size=4009

Hors ligne

#113 Le 08/06/2019, à 09:06

Zakhar

Re : [1fichier] "Montez" votre stockage 1fichier en une commande simple !

Oui, j'ai vu ça, on ne passe même pas le listage de root, donc ce devrait être facile à débugger puisqu'à ce moment là on n'est pas encore en "multi-tâche" / daemon !


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#114 Le 08/06/2019, à 09:08

jaxx21

Re : [1fichier] "Montez" votre stockage 1fichier en une commande simple !

Pas de soucis, prend ton temps. C'est impec ce que tu fourni et fonctionnel déja pour nous simples utilisateurs smile

Dernière modification par jaxx21 (Le 08/06/2019, à 09:09)

Hors ligne

#115 Le 08/06/2019, à 09:14

Zakhar

Re : [1fichier] "Montez" votre stockage 1fichier en une commande simple !

Huhu... "faute de frappe" dans le programme :

		if (f_r && r1 == t
			&& 0 == strncmp(val, params1f.refresh_file, r1)) {
			lprintf(LOG_WARNING,
				"refresh triggger off: a file or directory `/%s` already exists in `%s`.\n",
				params1f.refresh_file, d->name);
			*f_refresh = f_r = false;
		}
		if (f_s && r2 == t
			&& 0 == strncmp(val, params1f.refresh_file, r2)) {
			lprintf(LOG_WARNING,
				"statistics off: a file or directory `/%s` already exists in `%s`.\n",
				params1f.stat_file, d->name);
			*f_stat = f_s = false;
		}

Copier/coller abusif, dans le deuxième 'if' on s'intéresse au 'stat_file' or la comparaison (strncmp) est faite avec le "refresh_file". Ce qui veut dire que sans paramètre refresh_file, on tente d'accéder à un pointeur NULL...

Pas vu parce que j'ai toujours un refresh_file.

La correction est simple donc, ce sera relivré dans la journée. Si tu veux tester les statistiques, en attendant la correction, tu peux juste rajouter un refresh-file et ça marchera en contournant le bug.

--refresh-file=whatever

Merci du signalement.

P.S. : ça me fait penser qu'il faudrait que je rajoute un /TODO pour me constituer un jeu de test de cas divers.

Dernière modification par Zakhar (Le 08/06/2019, à 09:17)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#116 Le 08/06/2019, à 09:27

jaxx21

Re : [1fichier] "Montez" votre stockage 1fichier en une commande simple !

alors, je tape ma commande:

1fichierfs --api-key=XXXXXXXXXXXXXXXXXXXXXXX --stat-file=.stats --refresh-file=whatever -o allow_other /home/ubuntu/1fichier

et en effet, j'ai plus le bug et je vois bien un fichier stat dans le dossier 1fichier, et il contient:

Uptime: 00:03:13

Readers:
     Down. N.Req  Avg Time  Max Time   Ref  Qu N.Err Speed Av.Sp
[01]     0     0    0.0000    0.0000  idle   0     0     0     0
[02]     0     0    0.0000    0.0000  idle   0     0     0     0
[03]     0     0    0.0000    0.0000  idle   0     0     0     0
[04]     0     0    0.0000    0.0000  idle   0     0     0     0
----------------------------------------------------------------
Tot.     0     0    0.0000    0.0000         0     0     0     0

API:
                        N.Req  Avg Time  Max Time Retry N.Err
folder/ls.cgi         :     2    0.2116    0.3035     0     0
--------------------------------------------------------------
Total                 :     2    0.2116    0.3035     0     0

         Trig. Timer   API Error   Total
Refresh:     0     0     0     0       0

             Number Memory
Allocations:    159  1535K
Frees      :    153  1085K
Difference :      6   450K

Par contre, quand je tape ma commande:

watch -n3 cat ~/1fichier/.stats

j'ai:

Every 3,0s: cat /home/ubuntu/1fichier/.stats                                                                        vps646287: Sat Jun  8 10:27:07 2019

cat: /home/ubuntu/1fichier/.stats: No such file or directory

donc,j'ai peut être mal fait un truc.

Dernière modification par jaxx21 (Le 08/06/2019, à 09:29)

Hors ligne

#117 Le 08/06/2019, à 09:30

Zakhar

Re : [1fichier] "Montez" votre stockage 1fichier en une commande simple !

Oui parce que tu es en root.

Il faut donc remplacer par :

watch -n3 cat /home/ubuntu/1fichier/.stats

Explication : ~ est remplacé par le bash (interpréteur de commande) par le 'home' de l'utilisateur courant. Lorsque tu es en root, ton home est /root, et donc ~/1fichier/.stats devient /root/1fichier/.stats  après le remplacement. Ce n'est pas ce que tu veux, puisque tu veux /home/ubuntu/1fichier/.stats

Et tant que tu ne fais rien avec le driver 1fichier, la seule chose qui va changer sera le uptime (temps écoulé depuis le démarrage) et la mémoire consommée (car les stats allouent/libèrent de la mémoire)
Ca devient intéressant quand tu utilises réellement de driver ! big_smile

Tu verras alors la vitesse de download instantanée et moyenne, les noms de fichiers accédés, etc...

[Edit] : version corrigée (1.3.2) soumise au Launchpad pour Bionic (Xenial en cours), ce devrait être bon d'ici ~15 à 30 minutes.
[Edit 2] : Launchpad a terminé la compilation/packaging pour Bionic à 10h50, et à 11h02 pour Xenial.

Dernière modification par Zakhar (Le 08/06/2019, à 10:11)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#118 Le 08/06/2019, à 09:50

Zakhar

Re : [1fichier] "Montez" votre stockage 1fichier en une commande simple !

(8 Juin 2019) Version 1.3.2

Nouveautés par rapport à la 1.3.1

  • Crash : signalement de Jaxx21 ci-dessus. Suite à un copier/coller abusif, le crash se produit systématiquement au démarrage lorsqu'on spécifie une fichier statistiques sans spécifier de fichier refresh.

  • Bug mineur : mauvais format pour la journalisation (log) des éventuelles erreurs de lecture. Par exemple, on 'log' 4294967291 au lieu de -5

Le crash ne se produit que si :
- vous spécifiez un fichier statistiques
- vous ne spécifiez pas de fichier refresh

Donc pour la mise à jour, c'est vous qui voyez selon votre usage !

@Jaxx21, tu peux retirer la partie refesh-file de la commande si tu n'en as pas besoin, le bug est corrigé et packages disponibles pour la MàJ

Dernière modification par Zakhar (Le 08/06/2019, à 10:13)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#119 Le 08/06/2019, à 10:13

jaxx21

Re : [1fichier] "Montez" votre stockage 1fichier en une commande simple !

Niquel, ca marche. Merci wink

Hors ligne

#120 Le 08/06/2019, à 10:15

Zakhar

Re : [1fichier] "Montez" votre stockage 1fichier en une commande simple !

jaxx21 a écrit :

Niquel, ca marche. Merci wink

Merci pour le signalement d'erreur, ça améliore la qualité du truc ! smile


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#121 Le 08/06/2019, à 17:19

Zakhar

Re : [1fichier] "Montez" votre stockage 1fichier en une commande simple !

(8 Juin 2019) Version 1.4.0

Nouveautés par rapport à la 1.3.2

  • Nouveautés : rajout des options de curl --cacert et --insecure. La première option, avec le fichier de certificats adéquat (que vous pouvez télécharger sur le gitlab https://gitlab.com/BylonAkila/astreamfs … ier_ca.pem), permet de réduire notablement l'empreinte mémoire du programme. L'option --insecure réduit encore davantage, mais n'est pas conseillée pour des raisons évidentes !..

  • Améliorations mineures du code : rajout de l'option de compilation -pedantic et correction du code en rapport.


Faut-il mettre à jour : pas vraiment !

... sauf si votre machine est juste en mémoire, le gain procuré par l'option ne se verra pas. Dans le cas où votre machine a vraiment peu de mémoire et peine avec 1fichierfs plus les logiciels que vous utilisez, cela peut apporter un mieux.
Dans ce cas il vous faut soit récupérer le fichier de certificat (lien plus haut), soit le fabriquer ainsi :

openssl s_client -showcerts -servername 1fichier.com -connect 1fichier.com:443 >1fichier.pem

Dans le fichier créé : 1fichier.pem, repérez le premier bloc compris entre --- BEGIN CERTIFICATE --- et --- END CERTIFICATE --- et retirez tout le reste sauf ce bloc là (balises BEGIN et END doivent rester).

Ensuite vous rajoutez dans la commande de lancement :

--cacert=/path/to/1fichier.pem

Cela fait baisser environ de deux tiers (en moyenne) la consommation mémoire du programme. Il reste entre 30 et 50Mo au repos contre 90 à 150Mo avec le fichier de certificats par défaut que curl utilise.

Notez que la consommation mémoire n'est pas vraiment due à 1fichierfs lui-même ni à libcurl (les statistiques mémoire le prouvent, elles incluent les deux), mais à GnuTLS qui est assez gourmand, surtout avec le fichier de certificats par défaut (~250k au lieu de 2.5k pour le seul certificat utile). A noter également qu'OpenSSL n'est pas une option tant que la 16.04 est supporté car la version d'OpenSSL en 16.04 n'est pas "thread safe", donc non utilisable avec 1fichierfs.

Dernière modification par Zakhar (Le 08/06/2019, à 18:19)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#122 Le 08/06/2019, à 21:14

xxx31fr

Re : [1fichier] "Montez" votre stockage 1fichier en une commande simple !

Hello @Zakhar,
C'est vraiment un super boulot ce que vous faites.
Je testerai votre application très prochainement.

Une petite question me trotte. Une fois que vous aurez implémenté la fonctionnalité de write, cela permettrait il d'utiliser le montage comme n'importe quel point de montage et donc, d'en faire un point de réception pour des torrent?

cordialement,

Hors ligne

#123 Le 08/06/2019, à 22:15

Zakhar

Re : [1fichier] "Montez" votre stockage 1fichier en une commande simple !

xxx31fr a écrit :

Hello @Zakhar,
C'est vraiment un super boulot ce que vous faites.
Je testerai votre application très prochainement.

Une petite question me trotte. Une fois que vous aurez implémenté la fonctionnalité de write, cela permettrait il d'utiliser le montage comme n'importe quel point de montage et donc, d'en faire un point de réception pour des torrent?

cordialement,

Pas tout de suite... et pas vraiment.
En réalité le protocole torrent provoque des écritures et des lectures aléatoires, et c'est précisément pour l'inverse qu'est optimisé le driver : pour les lectures séquentielles (stream), et dans un premier temps, il  supportera uniquement l'écriture séquentielle, ce qui est la seule chose supportée par l'upload 1fichier.

L'écriture séquentielle est suffisante pour 95% des choses comme la copie, la sauvegarde, etc... et c'est donc ça qui sera implémenté en premier.
Un autre driver pas mal utilisé : curlftpfs (montage d'un ftp) supporte de même uniquement l'écriture séquentielle, puisque le protocole ftp ne supporte que cela grâce à "append".

L'écriture aléatoire ce sera dans un deuxième temps, mais pour être "raisonnable", elle nécessite un stockage temporaire local. Et du moment où on a un stockage local, le driver perd de son intérêt pour faire ce que vous imaginez !.. On peut simplement récupérer les torrent sur le stockage local et ensuite les uploader en une seule fois ce qui est une écriture séquentielle.
Comme par ailleurs le driver nécessite un PC allumé, ça ne transformera pas miraculeusement votre stockage 1fichier en seedbox ! ;-)

En lecture, c'est déjà un "montage standard", mais comme c'est expliqué dans le manuel :

man 1fichierfs

ce n'est pas du tout adapté à de l'accès aléatoire. On peut donc bien sûr stocker sur 1fichier l'iso de la dernière Ubuntu et le partager en torrent, ça marchera, mais avec de bien piètres performances et un gaspillage de bande passante flagrant à cause du type d'accès aléatoire de torrent... et encore une fois, il faut laisser le PC allumé pour ça, donc où est l'intérêt ? Ne vaut-il mieux pas récupérer l'iso en local et le partager ? Ca fait moins de 2Go, on a en général de quoi stocker ça localement...

... ou alors vous n'avez pas suffisamment détaillé le cas d'usage et j'ai mal compris ! tongue

Dernière modification par Zakhar (Le 08/06/2019, à 22:25)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#124 Le 09/06/2019, à 09:50

xxx31fr

Re : [1fichier] "Montez" votre stockage 1fichier en une commande simple !

Bonjour @Zakhar,

Je vous remercie pour votre réponse.
Je pensais qu'il serait possible d'utiliser le montage 1fichier comme un disque local sdb avec les même fonctionnalités.
C'est aussi que dans ce sens là que je cherche à monter un stockage type google drive comme un "vrai disque" NAS ou USB pour permetttre aussi bien de l'écriture séqentielle que aléatoire sans stockage temporaire en local (surtout si le stockage local est très faible)

Cdlt

Hors ligne

#125 Le 09/06/2019, à 10:36

Zakhar

Re : [1fichier] "Montez" votre stockage 1fichier en une commande simple !

Oui, c'est un cas d'usage par exemple avec un Raspberry Pi.
Cela dit, vu le prix des clés USB en baisse constante, même si elles ne sont pas super performantes, ça fait un support temporaire pas cher pour un R-Pi. Personnellement j'ai acheté à vil prix une clé USB de 256Go pour la Freebox Mini. Du coup, il y a de quoi voir venir.

Mais hélas, aucun stockage à distance n'est fait pour l'écriture aléatoire, tout simplement parce que les protocoles web ne le prévoient pas, à part WebDAV qui est moribond.

La lecture aléatoire reste possible cependant, parce que depuis des décennies le http standard propose "range" qui permet de lire uniquement un morceau de la ressource. Mais 1fichierfs comme astreamfs dont il dérive, ne sont pas adaptés pour cela. Aussi, depuis la généralisation de https, faire des "range" isolés pour lire des bouts de fichier devient très "cher" en temps et ressource. En effet, cela nécessite un "handshake" SSL en plus de la requête, donc l'overhead est vite rédhibitoire en réalité.

Cependant, même si c'est lent (parce que pas optimisé pour ça) la lecture aléatoire reste fonctionnelle avec 1fichierfs ou astreamfs. Mais l'écriture est une autre paire de manche !..

Pour l'écriture, on a en réalité un problème plus fondamental de "synchro" si on veut être sûr d'écrire correctement via un réseau.

Imaginez la chose suivante :
Le client 1 envoit à 11:27:00.000 une requête A pour écrire entre 10 000 et 20 000
Le client 2 envoit à 11:27:00.050 une requête B pour écrire entre 15 000 et 25 000

Par le jeu des routages et des paquets IP qui se perdent, il se trouve que la requête B envoyée 50 millisecondes après, arrive avant la requête A sur le serveur.
Le résultat final ne sera alors pas ce qui est attendu dans l'ordre temporel absolu d'écriture.
Aussi, introduire un "numéro d'ordre" pour tenter de régler le problème ne fonctionne pas car il est impossible de synchroniser 2 machines via un réseau avec une probabilité de 100% (problème des deux généraux).
Le "numéro d'ordre" n'est possible qu'avec un client unique.
C'est pourquoi pour tenter de limiter ces corruptions WebDAV introduit les "verrous". Mais cela ne fait que déplacer le problème parce qu'on se trouve alors avec un problème de verrous orphelins lorsqu'un client qui a verrouillé est planté pour une raison quelconque. Et c'est aussi très moche d'un point de vue asynchronisme... les choses étant de plus en plus faites en parallèle.

La lecture n'a pas ce problème à l'évidence !..

Donc malheureusement, la seule issue réaliste à court terme pour l'écriture est d'avoir un support local : mémoire ou fichier par exemple, ou alors, bien sûr, d'écrire en séquentiel.

Dernière modification par Zakhar (Le 09/06/2019, à 10:46)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne