1. Instale el servicio VSFTPD en Ubuntu
1. Instalación
sudo apt-get install vsftpd
2. Agregue el usuario (UFTP)
sudo useradd -d /home/uftp -s /bin/bash uftp
3. Establecer contraseña de usuario
sudo useradd -d /home/uftp -s /bin/bash uftp
4. Cree un directorio de usuario
sudo mkdir /home/uftp
5. Establecer contraseña de usuario
sudo passwd uftp
6. Establezca el archivo de configuración /etc/vsftpd.conf
sudo vim /etc/vsftpd.conf
a. Modificar los permisos para cargar archivos:
Habrá un problema aquí. Por defecto, el permiso predeterminado es 077, lo que significa los 700 correspondientes en Linux. La regla de cálculo es el permiso de Linux 777 - Local_umask
Si no se establece el permiso del archivo local_umask, el archivo cargado no podrá acceder a él a través del servidor (permisos faltantes)
b. Agregue al final del archivo de configuración:
userList_Deny = no userList_enable = sí userList_file =/etc/permitido_users seccomp_sandbox = no local_enable = sí
do. Establezca los permisos para cargar archivos:
write_enable = YES
Si no lo establece en SÍ, la carga de archivos no está permitido de forma predeterminada.
7. Crear /etc /permitido_users
Agregue permitir tareas que se agregen al archivo.
8. Reinicie el servicio
sudo service vsftpd restart
9. Use XFTP para probar la conexión
Use XFTP para crear una nueva conexión. Aquí debe prestar atención al protocolo FTP que seleccionó. El puerto es 21. Después de completar la contraseña de la cuenta, puede conectarse a nuestro servidor.
Prueba de carga de carga:
Aquí se carga un archivo txt, y podemos ver que los permisos del archivo son 666. Esto se debe principalmente a que establecemos los permisos después de cargar el archivo local_umask.
2. Java ftpClient implementa la carga del archivo
1. Dependencia de Maven
< <AtifactId> Commons-Net </artifactid> </pendency>
2. Cree un objeto ftpClient para conectarse de forma remota al servidor
FtpClient ftp = new ftpClient (); // enlace el servicio remoto ftp.connect ("192.168.148.128", 21);El resultado de la conexión se puede ver en la depuración:
3. Servidor de inicio de sesión de FTPClient
ftp.login ("Uftp", "**"); // devuelve el estado de inicio de sesión estado int respuesta = ftp.getReplyCode (); if (! ftPreply.ispositiveCompletion (respuesta)) {ftp.disconnect (); devolver ; }¡Podemos verificar si el usuario inició sesión correctamente juzgando el código de respuesta y la fuerza de respuesta!
4. Modificar la ruta de carga de archivo y el tipo de archivo
// Modifique la ruta de archivo de carga ftp.changeworkingDirectory ("/home/uftp/images/"); // Modifique el tipo de archivo ftp.setfiletype (ftp.binary_file_type);5. Cargar archivos
// Obtenga la transmisión de entrada de archivos cargados fileInputStream fileInputStream = new FileInputStream (nuevo archivo ("d: /123.jpg")); // presione el archivo al servidor ftp.storeFile ("hello.jpg", fileInputStream);Después de completar el archivo de carga, la carga es exitosa al verificar el resultado de retorno.
6. Siciar sesión
// Iniciar sesión ftp.logout ();
Los pasos anteriores son usar FTPClient para completar una operación de carga de archivo.
3. Use Nginx para ver imágenes del servidor
1. Archivo de configuración de Nginx
Agregar resolución de dirección de imagen en el servidor
ubicación ~.*/. (gif | jpg | jpeg | bmp | png | ico | txt) $ {root/home/uftp/images; expira 7d; }2. Reiniciar Nginx
./nginx -s reload
3. Ver fotos
http://192.168.148.128/hello.jpg
Resumen: en este punto, completamos una carga simple de la imagen al servidor y mostramos una pequeña demostración. El principal problema encontrado durante el proceso de configuración es sobre los permisos de archivo. Si local_umask no está configurado en el archivo de configuración en VSFTPD, incluso si cargamos con éxito el archivo, no podemos usar NGINX para navegar. Establezca write_enable = sí para asegurarse de que el archivo se pueda cargar.
Lo anterior es todo el contenido de este artículo. Espero que el contenido de este artículo sea de ayuda para el estudio o el trabajo de todos. ¡También espero apoyar a Wulin.com más!