Aller au contenu

Créer un script qui liste et propose des téléchargements depuis un serveur web


LolYangccool

Messages recommandés

Bonjour,

J'aimerai créer un script qui puisse afficher une liste de choix de fichier à télécharger.
Par exemple, en tapant 1, le choix un serait sélectionné et déclencherai le téléchargement du fichier correspondant sur un serveur web.
Les URLS correspondantes pourraient soient être indiquées en dur dans le script, ce qui m'obligerai à le mettre à jour régulièrement, ou, et c'est la solution que je préfèrerai, le scirpt scannerai le serveur web et afficherai les fichiers à télécharger sous la fome :

1) Fichier 1
2) Fichier 2
etc...

Les fichiers seraient soit des .zip, soit des applications au format .app, soit d'autres (ipsw par exemple).

Le but est de me faire un script pour accéder à mes macOS, et ipsw d'iOS entre autres.
Je sais déjà récupérer mes fichiers via scp depuis mes Mac (ou Linux), mais je ne sais pas faire de choix, je suis tombé sur un outil qui s'appelle Display je crois, et qui permet d'afficher des choix sur fond bleu comme j'ai déjà rencontré plein de fois sur Linux, mais c'est dispo que sur Linux et surtout, ça implique d'installer cet outil sur tous les Mac ou j'utiliserai le script.
J'aimerai quelques chose de natif.

Obtenir quelque chose dans ce style là ça serait top (je n'ai pas forcément besoin des dates d'ajouts, juste le nom ça m'irait) :

63ad1556-ac85-496f-b61e-6842687babe6.png

Si quelqu'un se sens chaud de m'aider...

Merci. :)

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

Salut @LolYangccool

 

Vaste programme :) Tu souhaites utiliser quel langage ?

Il y a 15 heures, LolYangccool a dit :

J'aimerai créer un script qui puisse afficher une liste de choix de fichier à télécharger.

Pour faire une liste de choix, généralement c'est le couple de commande switch / case qu'il faut utiliser.

 

Je veux bien essayer de t'aider dans la mesure de mes petits moyens 😉

Modifié par clive-guilde
Lien vers le commentaire
Partager sur d’autres sites

Lister des fichiers sur un serveur distant est quand même plus facile en ssh... Au pire en sftp...

Voilà un exemple de script qui marche. Comme souvent, le plus pénible en shell script c'est la gestion des espaces éventuels dans les noms de fichiers. Ici je suppose que tous les fichiers sont dans un même dossier (on peut adapter facilement pour plusieurs dossiers ou une arborescence)

#!/bin/bash

# on recupere le contenu du dossier et on le met dans un fichier texte
ssh localhost ls SynologyDrive/Labo/LLYCC/TOTO > liste.txt

noms=()   #initialisation d'un tableau vide
n=0
# boucle qui lit toutes les lignes et remplit le tableau des noms
while read line ; do
    ((n++)) 
    echo $n" : "$line 
    noms+=("$line")
done < liste.txt 

# note : en local il suffirait de faire noms=(SynologyDrive/Labo/LLYCC/TOTO/*) 
# a la place de tout ce qu'il y a au-dessus

echo
echo "Votre choix ?"
read choix

((choix--))   # decremente de 1 car les index des tableaux bash commencent a 0
file=${noms[$choix]}
file=${file// /\\ }   # regle de substition bash qui "echappe" les espaces dans le nom
                      # (remplacement des " " par des "\ ", necessaire pour le scp qui suit)

scp localhost:"SynologyDrive/Labo/LLYCC/TOTO/$file" .

 

Par contre s'il y a un accès http, pourquoi ne pas utiliser directement l'URL du dossier qui contient les fichiers ? Si ce dossier ne contient pas de fichier "index.*" le serveur renvoie le contenu du dossier et il suffit de cliquer sur un fichier pour le télécharger. Et aucun besoin de script.

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

Merci pehache.

Pourquoi ne pas utiliser le listing apache ? Parce que les .app sont vu comme des dossiers, il n'y a que sur macOS que le .app est géré comme un fichier.
De base les fichiers ne sont pas sur un serveur web. Ils sont stocké sur le NAS dans un dossier partagé nommé « OSes » de cette façon :

a27a7ed6-723a-4c20-8266-b3d22b610e1a.png

Et puis à terme, pourquoi ne pas automatiser, scripter les téléchargements etc...

Lien vers le commentaire
Partager sur d’autres sites

Ok, donc sans avoir accès directement au dossier partagé. Ce n’était pas très clair.

 Le script que j’ai mis peut servir de base et être amélioré.

Mais une autre solution c’est un accès sftp. Un client comme Filezilla sait récupérer un dossier complet.

Lien vers le commentaire
Partager sur d’autres sites

Il y a 21 heures, pehache a dit :

Un client comme Filezilla sait récupérer un dossier complet.

Oui ce logiciel est vraiment top, open-source, multiplateforme et simple à utiliser.

 

Le 10/08/2021 à 00:10, pehache a dit :

J'avoue ne pas bien comprendre ce que tu cherches à faire

Oui je suis d'accord. C'est difficile de t'aider @LolYangccool sans connaitre plus ton projet ...

Modifié par clive-guilde
Lien vers le commentaire
Partager sur d’autres sites

FileZilla je connaîs bien. Il a une interface vieillotte, en général j’utilise transmit sur Mac mais les dernières version demandent sans arrêt le mot de passe à chaque dossier accédé et ça a tendance à m’énerver.

Le but c’est juste de pouvoir télécharger rapidement un os complet à la façon du script dont j’ai mis un screenshot ci-dessus.

Lien vers le commentaire
Partager sur d’autres sites

il y a une heure, LolYangccool a dit :

FileZilla je connaîs bien. Il a une interface vieillotte, en général j’utilise transmit sur Mac mais les dernières version demandent sans arrêt le mot de passe à chaque dossier accédé et ça a tendance à m’énerver.

Du coup mieux vaut l'interface viellotte qui fonctionne bien 😛

il y a une heure, LolYangccool a dit :

Le but c’est juste de pouvoir télécharger rapidement un os complet à la façon du script dont j’ai mis un screenshot ci-dessus.

J'ai commenté un peu mon script aussi

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

Il y a 3 heures, pehache a dit :

Du coup mieux vaut l'interface viellotte qui fonctionne bien 😛

 

Oui je suis passé sur FileZilla sur Mac, je l'utilisais uniquement sur Windows et Linux auparavant.
Mais l'interface n'évolue pas, franchement c'est dommage, elle fait pas moderne, mais il a des qualités ce logiciel c'est sur.

Lien vers le commentaire
Partager sur d’autres sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

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.

Chargement
×
×
  • Créer...