[Résolu] Prendre une photo et l'uploader sur un FTP distant

Bonjour,

Je suis nouveau sur le forum. J’espère pouvoir y trouver de l’aide et en apporter à mon tour. Mais aujourd’hui c’est de vous dont j’ai besoin.

J’ai un raspberry pi 2 qui tourne sous rasbian jessy lite.

Ce que je souhaite c’est créer un bash qui prends une photo et l’upload ensuite sur un FTP distant.
J’ai testé l’envoie d’un fichier test.txt il est bien parvenu sur mon FTP distant et a pu être ouvert sans soucis.

Pour la photo je fait donc ma capture et je laisse un délai de 15s (dans le doute) puis je lance le transfert FTP.
Je reçois bien un fichier photo_rasp.jpg mais celui-ci est différent de celui qui s’est généré à la capture d’une photo sur mon raspberry. Il y’a toujours 1Kb de moins et le fichier est « corrompu » donc illisible.

Mon bash se trouve bien dans « /var/www/photos/ »

Vous trouverez ci-dessous mon script.

Merci par avance pour votre aide.

#!/bin/bash
HOST='ftp.nomdedomaine.fr'
USER="username"
PASSWD="password"
FILE="photo_rasp.jpg"
REMOTEPATH='/www/rasp'

raspistill  -o /var/www/photos/photo_rasp.jpg
sleep 15

ftp -n $HOST <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
cd $REMOTEPATH
put $FILE
quit
END_SCRIPT
exit 0

Salut,

Je viens d’essayer.
Déjà, j’ai merdouillé car le script ne se lance qu’en « sudo ».
Sinon, il ne veut pas créer la photo dans ce répertoire (c’est OK sous « pi »).

Mais bon, une fois en « sudo » ça tourne donc on reverra plus tard.

En fait, j’ai la même chose que toi :
« L’image blablabla/photo_rasp.jpg ne peut être affichée car elle contient des erreurs ».

Je cherche ; à suivre.

++

Merci de ta réponse, qui est ton hébergeur FTP ?

Car j’ai testé avec deux, celui du boulot ça fonctionne et mon perso (chez OVH) ça ne marche pas.
De plus si on comment la prise de la photo et qu’on met un fichier .txt
Le fichier .txt arrive bien et est lisible, et ça sur les deux FTP cités ci-dessus.
Egalement testé depuis un PC sous ubuntu ça ne marche pas donc le pb ne viens ni du script ni du raspberry…

J’ai contacté OVH de mon côté, si tu me dit que tu est également chez OVH ça ciblera peut être le problème.

Yo,

Je viens de retester avec un fichier plus petit :
raspistill -w 280 -h 640 -o /var/www/photos/photo_rasp.jpg
mais pareil.

Mon hébergeur ???
OVH …

Bizarre, mais si c’est ça, je veux bien la solution :wink:

++

Très bien, dans ce cas je posterai la réponse ici dès que j’ai un retour de leur part.

Merci pour tes retours

Vais essayer chez Free, mais je ne peux pas là tout de suite.
On en recause,

Réponse très rapide de la part d’OVH.
Le soucis était le mode de transfert, il faut être en binary.
Le script qui fonctionne est donc le suivant :

#!/bin/bash
HOST='ftp.nomdedomaine.fr'
USER="username"
PASSWD="password"
FILE="photo_rasp.jpg"
REMOTEPATH='/www/rasp'

raspistill  -o /var/www/photos/photo_rasp.jpg
sleep 15

ftp -n $HOST <<END_SCRIPT
quote USER $USER
quote PASS $PASSWD
cd $REMOTEPATH
binary
put $FILE
quit
END_SCRIPT
exit 0

Cool,
Merci pour ton retour (et la diligence avec laquelle OVH a géré le truc),

Test effectué à l’instant = OK.

Sauf que je suis obligé de passer en « sudo » ; problème de droits lors des créations des répertoires /www et de /photos

@+

Edit, un coup de
sudo chmod 777 /var/www
sudo chmod 777 /var/www/photos
Et ça roule :wink:

Edit2 :
Et je viens de tester une tache cron (jamais testé jusqu’à présent) :
*/5 * * * * pi cd /var/www/photos && bash transfert.sh me fait donc une photo toutes les 5 minutes avec mise en ligne.