Ho bisogno di copiare un file di testo da un server all'altro (entrambi i server sono Linux). Come posso farlo in Java?Copia file da un server a un altro
risposta
easist se siete in grado di utilizzare apache commons-io: la classe FileUtils
ha metodi convenienti per copiare i file:
FileUtils.copyFileToDirectory(srcFile, targetDirectory);
(come lei ha parlato di testo file presumo, l'applicazione ha accesso ad entrambi di file sistemi)
Richiederebbe che il server A abbia una directory del server B montata localmente? – aioobe
Indovina. La domanda è alquanto vaga - di solito hai una determinata interfaccia (file system, ftp, webservice, ...) e cerchi aiuto per implementarla/usarla con un dato linguaggio di programmazione (qui: Java) ... –
Buona risposta (+1) –
Se è necessario copiare file da file system accessibili, andare con Andreas' answer.
Se si desidera un approccio generale che estrae dal protocollo sottostante, dare un'occhiata a Apache Commons VFS. Esso fornisce un'API comune per le risorse disponibili attraverso a number of protocols:
- FTP
- file locali
- HTTP e HTTPS
- SFTP
- File temporanei
- Zip, Jar e Tar (non compresso, tgz o tbz2)
- gzip e bzip2
- res
- ram
- mimo
Quasi tutte le macchine Linux sarà avere server SSH in esecuzione per impostazione predefinita. Quindi SCP sarebbe la soluzione migliore per copiare i file tra loro.
Utilizzare una libreria SSH come JSCH per eseguire questa operazione. Troverai un tutorial per trasferire SCP usando JSCH here.
Se si utilizza FTP, è possibile utilizzare FTPClient da Apons Commons/Net.
Ecco alcuni codici di esempio per il vostro riferimento:
FTPClient client = new FTPClient();
client.connect(host);
if(FTPReply.isPositiveCompletion(client.getReplyCode())) {
if(client.login(username, password)) {
FileInputStream fis = new FileInputStream(localFilepath);
try {
if(client.storeFile(remoteFilename, fis)) {
System.out.println("File uploaded!");
}
}
finally {
fis.close();
}
}
}
Se volete un modo semplice e il server supporta PHP, vi consiglio il Rapid Transfer Script.
Basta caricare lo script nella directory in cui si desidera copiare il file, immettere l'URL del file che si desidera copiare e fare clic su Trasferimento. Ha copiato un file da 1,4 GB in meno di 2 minuti e mi ha risparmiato un sacco di tempo e larghezza di banda.
Ho utilizzato il servizio di rete FTP per trasferire file da un server a un altro.
Maven Dipendenza:
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>3.3</version>
</dependency>
Java:
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
public void tranferFile() {
FTPClient ftpClient = new FTPClient();
try {
ftpClient.connect(servername, port);
ftpClient.login(username, password);
ftpClient.enterLocalPassiveMode();
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
File sourceFile = new File("file which you want to send");
InputStream inputStream = new FileInputStream(sourceFile);
boolean done = ftpClient.storeFile("filename which receiver get", inputStream);
inputStream.close();
if (done) {
LOGGER.info("file is uploaded successfully..............");
}
} catch (IOException e) {
LOGGER.error("Exception occured while ftp : "+e);
} finally {
try {
if (ftpClient.isConnected()) {
ftpClient.logout();
ftpClient.disconnect();
}
} catch (IOException e) {
LOGGER.error("Exception occured while ftp logout/disconnect : "+e);
}
}
}
- 1. Copia da un file xml a un altro - powershell
- 2. SQL Server - copia stored procedure da un db a altro
- 3. Chiave ssh copia affidabile da un host a un altro
- 4. Copia dati da un database a un altro in Oracle
- 5. Copia i target da un progetto Xcode a un altro?
- 6. Copia righe da un Datatable a un altro DataTable?
- 7. Copia classe da un elemento a un altro
- 8. PostgreSQL: copia dati da una tabella, database, server a un'altra tabella, un altro database, server
- 9. SQL Server Copia di tabelle da un database a un altro
- 10. Caricare un file da un altro progetto
- 11. Come copiare un database da un computer a un altro?
- 12. Copia da un file di testo a un altro usando Python
- 13. TFS: passaggio da un server a un altro
- 14. Lettura di un file utilizzato da un altro processo
- 15. Come fare riferimento a un file JScript da un altro?
- 16. htaccess Reindirizza un file a un altro
- 17. Copia una colonna da un database ad un altro
- 18. Copia tabella in un altro database su un altro SQL Server
- 19. incluso file php da un altro server con php
- 20. copia l'intero database su un altro database del server
- 21. Copia NSMutableArray ad un altro
- 22. System.IO.IOException: file utilizzato da un altro processo
- 23. Copia repository Maven su un altro computer
- 24. Copia del database PostgreSQL su un altro server
- 25. Copia QStandardItemModel su un altro
- 26. Copia oggetto in un altro
- 27. Passaggio da Google AppEngine a un altro server
- 28. Sottodominio reindirizzamento a un altro server
- 29. copia un grafico (adjacency_list) in un altro
- 30. MySQL: SELECT da un altro server
tipo di server? , il server B può accedere al server A utilizzando HTTP? –
Puoi usare FTP?I tuoi server sono sulla stessa rete? Stai usando un file system condiviso? Puoi distribuire un servlet? Penso che avremmo bisogno di più background per rispondere. –
È * possibile * utilizzare [scp] (http://www.go2linux.org/scp-linux-command-line-copy-files-over-ssh), ma immagino che lo abbiate implementato da soli, no? – Patrick