1. Installez le service VSFTPD sur Ubuntu
1. Installation
sudo apt-get install vsftpd
2. Ajouter l'utilisateur (UFTP)
sudo useradd -d /home/uftp -s /bin/bash uftp
3. Définir le mot de passe utilisateur
sudo useradd -d /home/uftp -s /bin/bash uftp
4. Créer un répertoire utilisateur
sudo mkdir /home/uftp
5. Définir le mot de passe utilisateur
sudo passwd uftp
6. Définissez le fichier de configuration /etc/vsftpd.conf
sudo vim /etc/vsftpd.conf
un. Modifiez les autorisations pour télécharger des fichiers:
Il y aura un problème ici. Par défaut, l'autorisation par défaut est 077, ce qui signifie le 700 correspondant dans Linux. La règle de calcul est la permission de Linux 777 - local_umask
Si l'autorisation du fichier local_umask n'est pas définie, le fichier téléchargé ne pourra pas y accéder via le serveur (autorisation manquante)
né Ajouter à la fin du fichier de configuration:
userList_deny = non userList_enable = oui userList_file = / etc / allowing_users seccomp_sandbox = non local_enable = oui
c. Définissez les autorisations de téléchargement de fichiers:
write_enable = YES
Si vous ne le définissez pas sur oui, le téléchargement des fichiers n'est pas autorisé par défaut.
7. Créer / etc.
Ajoutez des tâches d'autoriser à ajouter au fichier.
8. Redémarrer le service
sudo service vsftpd restart
9. Utilisez XFTP pour tester la connexion
Utilisez XFTP pour créer une nouvelle connexion. Ici, vous devez faire attention au protocole FTP que vous avez sélectionné. Le port est 21. Après avoir rempli le mot de passe du compte, vous pouvez vous connecter à notre serveur.
Fichier de téléchargement de test:
Un fichier TXT est téléchargé ici, et nous pouvons voir que les autorisations du fichier sont 666. C'est principalement parce que nous définissons les autorisations après le téléchargement du fichier local_umask.
2. Java ftpclient implémente le téléchargement du fichier
1. Dépendance Maven
<! - Composants d'outils Apache -> <dependency> <proupId> org.apache.commons </proupid> <petifactid> Commons-Lang3 </letifactid> </Dependency> <Dependency> <ProupId> org.apache.Commons </proupId> <Artifactid> Commons-io </ artifactid> </dependency> <ArtefactId> Commons-net </letefactid> </dependency>
2. Créez un objet FTPClient pour se connecter à distance au serveur
FtpClient ftp = new ftpClient (); // lien service distant ftp.connect ("192.168.148.128", 21);Le résultat de la connexion peut être affiché au débogage:
3. Serveur de connexion FTPClient
ftp.login ("uftp", "**"); // Renvoie l'état du résultat de connexion int réponse = ftp.getReplyCode (); if (! ftpreply.ispositivecompletion (réponse)) {ftp.disconnect (); retour ; }Nous pouvons vérifier si l'utilisateur s'est connecté avec succès en jugeant le code de réponse et la réponse!
4. Modifier le chemin de téléchargement de fichiers et le type de fichier
// Modifiez le chemin de téléchargement de fichiers ftp.changeworkingDirectory ("/ home / uftp / images /"); // modifie le type de fichier ftp.setFileType (ftp.binary_file_type);5. Télécharger des fichiers
// obtient le flux d'entrée des fichiers téléchargés fileInputStream fileInputStream = new FileInputStream (nouveau fichier ("d: /123.jpg")); // pousse le fichier vers le serveur ftp.storefile ("hello.jpg", fileInputStream);Une fois le fichier de téléchargement terminé, le téléchargement est réussi en vérifiant le résultat de retour.
6. Déconnexion
// Login ftp.logout ();
Les étapes ci-dessus sont d'utiliser FTPClient pour terminer une opération de téléchargement de fichiers.
3. Utilisez Nginx pour afficher les images du serveur
1. Fichier de configuration Nginx
Ajouter une résolution d'adresse d'image dans le serveur
Emplacement ~. * /. (gif | jpg | jpeg | bmp | png | ico | txt) $ {root / home / uftp / images; expire 7d; }2. Redémarrer Nginx
./nginx -s reload
3. Voir les photos
http://192.168.148.128/hello.jpg
Résumé: À ce stade, nous avons terminé un simple téléchargement de l'image sur le serveur et affiché une petite démo. Le problème principal rencontré pendant le processus de configuration concerne les autorisations de fichiers. Si local_umask n'est pas défini dans le fichier de configuration dans VSFTPD, même si nous téléchargeons avec succès le fichier, nous ne pouvons pas utiliser nginx pour parcourir. Set write_enable = oui pour s'assurer que le fichier peut être téléchargé.
Ce qui précède est tout le contenu de cet article. J'espère que le contenu de cet article sera d'une aide à l'étude ou au travail de chacun. J'espère également soutenir plus Wulin.com!