$err:=FTP_GetFileInfo

Product :4D - 4D Server
4D : v13.2
OS : Mac OS X

Bonjour à tous,

J’ai un souci avec cette commande :$err:=FTP_GetFileInfo

Je me logue sur un serveur ftp: pas de soucis ,
je peux envoyer des fichiers sur ce serveur avec la commande send: pas de soucis

En revanche dés ue je veux utiliser la commande $err:=FTP_GetFileInfo
ça ne fonctionne pas , j’ai l’erreur 10060

Je n’arrive pas à comprendre pourquoi.

Merci pour votre soutien

Alain Haerri

<code 4D>
$err:=IT_MacTCPInit
$vl_ftp_ID:=0
$err:=FTP_Login ($vt_ftp;$vt_user;$vt_password;$vl_ftp_ID;$vt_texteaccueil)
Si ($err=0)

Boucle ($i;1;Taille tableau($tadocument))

$cheminCible:=$cheminaccestadocument{$i} //c’est le chemin d’acces au document sur l’ordinateur
$cheminprov:=$chemindanslesiteftp+$tadocument{$i} //c’est le chemin d’acces au document sur le serveur internet distant

$err:=FTP_GetFileInfo ( $vl_ftp_ID ; $cheminprov ; $taille ; $dateModif ; $heureModif ) //******ça ne fonctionne pas

$err:=FTP_Send ($vl_ftp_ID;$cheminCible;$cheminprov;1)// ça fonctionne

Fin de boucle

$err:=FTP_Logout ($vl_ftp_ID)

</code 4D>

Bonjour,

Les infos de fichiers sur ftp c’est le serveur qui envoi un listing texte et le client ftp doit “parser” ce texte. Le problème est que le format n’est pas clairement défini/standardisé.
Ca ressemble normalement à un “ls -l” unix mais certains serveurs ftp envoient des formats différents (format DOS). Et après il y a des variations de format selon les serveurs. Du coup, des clients ftp ont parfois du mal à récupérer ces infos.

Format Unix :

Code :
-rw-r–r-- 1 1982 1982 1503831439 Jan 6 2013 file1.7z
-rw-r–r-- 1 1982 1982 160391120 Apr 12 17:45 file2.7z
-rwxr–r-- 1 owner group 640 1970 01 01 test

Format DOS :

Code :
03-18-14 11:10AM monDossier"
11-22-13 09:22PM 499684563 file1.7z

C’est quel serveur ftp ? Tu peux intervenir dessus pour changer des options ?

HTH

Merci Bruno,
Je comprends mieux pourquoi ça eu marché avec un serveur différent
Je vais donc utiliser $err:=FTP_GetDirList qui me permet de connaitre les dates de modification des fichiers sur le serveur.

Merci encore et bonne journée

Alain Haerri

: Alain HAERRI

Je vais donc utiliser $err:=FTP_GetDirList
Bonjour Alain,
avec getFileInfo tu faisais autant de requêtes que de documents, avec getDirList tu récupères tout ça en une requête. C’est donc mieux, de toutes façons :wink:

Merci Arnaud,
Oui c’est ce que je viens de réaliser.
J’esssaie de faire une méthode de upload de fichiers sur un serveurs en fonction de la date de modification de fichiers

Merci en tous cas
Alain

: Alain HAERRI

J’esssaie de faire une méthode de upload de fichiers sur un serveurs
en fonction de la date de modification de fichiers
Je ne suis pas sûr que ça puisse aboutir, il me semble que les dates coté ftp sont celles où le fichier a été copié - chaque machine date comme il lui plaît…

Merci Arnaud,
Oui en effet les dates ne fonctionnent pas, je m’en suis aperçu hier soir.
l’upload ne conserve pas les dates de modification , donc c’est foutu !!!

belle journée quand même

alain haerri

Bonjour,

As-tu essayé / envisagé AWS S3 ? :wink:

A+

Hello Bruno

Je découvre AWS S3 en le googelisant à l’instant
J’imagine c’est ce que tu utilises en es-tu satisfait?
Conserve t’il les dates de modification des fichiers?
le transfert est-il rapide?

merci à toi

alain haerri

Bonjour,

: Alain HAERRI

J’imagine c’est ce que tu utilises en es-tu satisfait?

Oui :slight_smile:

: Alain HAERRI

Conserve t’il les dates de modification des fichiers?
Hum… S3 c’est pour stocker un “objet” (un blob). Un fichier est un objet/blob en quelque sorte avec quelques méta-données.
Tu n’as pas, à proprement parler, de date de modification du fichier, group/owner, permissions, etc.
Mais tu as une date de modification de l’objet…
L’objet est identifié par une clé. Tu peux considérer que c’est le nom du fichier mais tu peux générer une clé unique pour ton objet.
Par ailleurs, tu peux aussi avoir plusieurs versions du même objet. J’ai pas vraiment joué avec ça mais ça peut répondre à ton besoin, on ne sais jamais…
Tu peux aussi ajouter des méta-données (liste de clé-valeurs) ou tu pourras y mettre ce que tu veux (nom “original” du fichier, date et heure de création, group/owner, permissions, etc… ).

<le transfert est-il rapide?>
Ca dépendra principalement de ton débit montant (pas trop de problème de débit chez Amazon).

https://github.com/blegay/aws_component

Merci Bruno
Je vais approfondir cette option

merci à toi
Bonne fin de journée

Alain haerri

Pour nous amazon était impossible car nous manipulons des données qu’on ne peut héberger hors du territoire national. Dommage, car j’étais revenu emballé par la conférence de Bruno en me disant “c’est ça que je veux”. Ça a peut-être changé depuis, d’ailleurs.

Bonjour,

Pour information AWS a des serveurs sur le territoire français (région Paris créée en 2017 avec 3 “AZ”).

https://aws.amazon.com/fr/paris/

https://aws.amazon.com/fr/about-aws/global-infrastructure/

Il reste que :

Les données peuvent/doivent être stockées cryptées/chiffrées. Soit en utilisant la solution d’Amazon qui effectue ceci de manière transparente pour nous, soit si on est parano (ne pas faire confiance à Amazon et si on pense que la NSA est intéressée par nos données) on peut utiliser son propre cryptage (AES 256 par exemple)…

Enfin, bien évidement, on évite de laisser un accès “public” au données sensibles stockées sur un serveur.

HTH

Merci pour toutes ces infos, Bruno !

De nos jours, le mode parano doit être mis sur always on… :roll: :mrgreen: