Necesito cargar el mismo archivo en 2 lugares diferentes en el mismo FTP. ¿Hay alguna forma de copiar el archivo en el FTP al otro lugar en lugar de cargarlo de nuevo? Gracias.FTP copiar un archivo a otro lugar en el mismo FTP
Respuesta
No creo que haya una manera de copiar archivos sin descargar y volver a cargar, al menos no encontré nada como esto en el List of FTP commands y ningún cliente que he visto hasta ahora admite algo como esto.
Sí, el protocolo FTP en sí mismo puede soportar esto en teoría. El FTP RFC 959 analiza esto en la sección 5.2 (consulte el párrafo que comienza con "Cuando los datos se transfieren entre dos servidores, A y B ..."). Sin embargo, no conozco ningún cliente que ofrezca este tipo de operación de control de servidor dual.
Tenga en cuenta que este método podría transferir el archivo del servidor FTP a sí mismo utilizando su propia red, que no será tan rápida como una copia de archivo local, pero casi con certeza será más rápido que descargar y volver a cargar el archivo.
Logré hacer esto usando WebDrive para montar el ftp como una carpeta local, luego "descargar" los archivos usando filezilla directamente a la carpeta. Fue un poco más lento de lo que normalmente es la descarga, pero no necesita tener el espacio en su disco duro.
Creo que todavía descargará el archivo temporalmente a su máquina y luego lo cargará inmediatamente a su unidad web. Sospecho que aún necesitarás un espacio de disco adecuado para lograrlo. –
Puede cambiar el nombre del archivo que se va a copiar en la ruta completa del resultado deseado.
Por ejemplo: Si desea mover el archivo "archivo.txt" en la carpeta "NewFolder" se puede escribir como
ftp> rename file.txt NewFolder/file.txt
Esto funcionó para mí.
Esto no tiene sentido: OP me preguntó explícitamente acerca de * copiar *, no sobre * mover * – codeling
Puedo copiar archivos entre carpetas remotas en sistemas basados en Linux. En mi caso particular, estoy usando muy común administrador de archivos PCManFM:
- menú "Go" -> "Conectarse al servidor"
- inicio de sesión FTP información, etc
- nueva pestaña abierta en PCManFM
- Conectar al mismo servidor
- Copia de una pestaña a ...
es un poco lento, así que supongo que se podría descargar y cargar la espalda archivos, pero se hace de forma automática y muy fácil de usar.
No hay una forma estándar de duplicar un archivo remoto a través del protocolo FTP. Sin embargo, algunos servidores FTP admiten extensiones propietarias o no estándar.
Algunos clientes FTP admiten la duplicación remota de archivos. Ya sea usando las extensiones o mediante una copia local temporal del archivo remoto.
Por ejemplo WinSCP FTP client hace support the duplication utilizando tanto arrastre & gota y comando de menú/teclado:
- Es compatible con la extensión FTP
SITE CPFR
/CPTO
(soportado por ejemplo por el ProFTPD mod_copy module) - Se cae de nuevo a una duplicación automática a través de una copia temporal local, si la extensión anterior no está disponible.
(yo soy el autor de WinSCP)
Otra solución consiste en abrir una segunda conexión con el servidor FTP y hacer que el servidor cargar el archivo en sí mismo mediante la canalización de un modo pasivo conexión de datos a una conexión de datos en modo activo. Esta solución se muestra en el answer by @SaadAchemlal.
Me gustaría agradecerle la increíble herramienta que es WinSCP. – Fatih
Puede hacerlo desde C-Panel.
- Inicie sesión en su C-Panel.
- Ir al administrador de archivos.
- Encuentra el archivo o la carpeta que deseas duplicar.
- Haga clic derecho y elija Copiar.
- Escriba el nuevo director que desea copiar.
¡Hecho!
1) no deje una 'firma' en su publicación, ahí es donde su perfil es para 2) C-Panel solo está disponible en casos muy específicos. – Glorfindel
El siguiente código hace que el servidor FTP cargue el archivo a sí mismo (utilizando la conexión de bucle invertido). Necesita el servidor FTP para permitir el modo de conexión activo y pasivo.
Si usted quiere entender los comandos ftp aquí es una lista de ellos: List of ftp commands
function copyFile($filePath, $newFilePath)
{
$ftp1 = ftp_connect('192.168.1.1');
$ftp2 = ftp_connect('192.168.1.1');
ftp_raw($ftp1, "USER ftpUsername");
ftp_raw($ftp1, "PASS mypassword");
ftp_raw($ftp2, "USER ftpUsername");
ftp_raw($ftp2, "PASS mypassword");
$res = ftp_raw($ftp2, "PASV");
$addressAndPort = substr($res[0], strpos($res[0], '(') + 1);
$addressAndPort = substr($addressAndPort, 0, strpos($addressAndPort, ')'));
ftp_raw($ftp1, "CWD ." . dirname($newFilePath));
ftp_raw($ftp2, "CWD ." . dirname($filePath));
ftp_raw($ftp1, "PORT ".$addressAndPort);
ftp_raw($ftp1, "STOR " . basename($newFilePath));
ftp_raw($ftp2, "RETR " . basename($filePath));
ftp_raw($ftp1, "QUIT");
ftp_raw($ftp2, "QUIT");
}
@MartinPrikryl Bueno, déjame decirte que funciona porque lo uso personalmente en Synology Nas. Además, responde la pregunta porque solo necesitas subir tu archivo al ftp una vez y usar mi función para copiarlo donde quieras sin tener que volver a cargarlo. La próxima vez intenta probar una solución antes de decir que no funcionará :) –
Lo siento, tienes razón, no leí el código con cuidado. Aunque la próxima vez, incluya alguna explicación en sus publicaciones, para evitar confusiones. +1 + He vinculado tu respuesta con la mía. –
Trataré de explicar más la próxima vez.Gracias por la edición;) –
- 1. ¿Cómo copiar un archivo en el servidor ftp a un directorio en el mismo servidor en Java?
- 2. cargar a ftp asp.net
- 3. Diferencias de tamaño de archivo después de copiar un archivo a un servidor vía FTP
- 4. ¿Es posible cargar archivos de FTP a FTP usando PHP
- 5. ¿cargar archivo con ftp?
- 6. escribiendo un servidor ftp java
- 7. FTP a proxy FTPS
- 8. Howto hacen un ftp sencillo conseguir el archivo en Android
- 9. obtener el último archivo de ftp
- 10. Empujar la subcarpeta a ftp usando git-ftp
- 11. ¿Cómo se sube un archivo a un servidor FTP?
- 12. Ftp transferir el rsync-way
- 13. PHP/FTP Client
- 14. No puedo poner el archivo en RAM con ftp seguro
- 15. Cargar múltiples archivos FTP
- 16. No puedo conectarme a FTP en Gingerbread
- 17. Leer archivo de FTP a la memoria en C#
- 18. Obtener tamaño de archivo en un FTP en C#
- 19. Python FTP para iPad
- 20. servidor FTP escrito en C#
- 21. cargar archivo con FTP usando nant
- 22. Usando .NET 2.0, ¿cómo puedo FTP a un servidor, obtener un archivo y eliminar el archivo?
- 23. Sube un archivo con codificación mediante FTP en C#
- 24. importar un archivo csv desde un sitio FTP externo
- 25. Apache Commons FTP problems
- 26. ¿Cómo puedo saber si un archivo en un FTP es idéntico a un archivo local sin realmente descargar el archivo?
- 27. WGET solo los nombres de archivo en un directorio FTP
- 28. Subir archivo al servidor FTP en el iPhone
- 29. ftp no descarga el archivo correctamente en java?
Me pregunto si se ha utilizado este y ha especificado localhost si usted podría conseguir alrededor de ese cuello de botella de menor importancia. Aun así, debemos tener en cuenta que muchos servidores FTP bloquean FXP (también conocido como transferencias de servidor a servidor) debido a los "ataques de rebote de FTP". Pero un servidor FTP inteligente no lo bloqueará para localhost. Aún así, podría bloquear a todos los FXP. – SilentSteel