¿Esta capacidad viene con .Net? Si no, ¿cuál es la mejor biblioteca gratuita? Necesito algo que arroje buenas excepciones cuando hay un problema, y me permite controlar su progreso.¿Cómo cargo un archivo a un servidor SFTP en C#/.NET?
Respuesta
Editar: esta respuesta es desde hace mucho tiempo y ya no es válida. Ver comentarios
Es posible que desee echar un vistazo a SharpSSH. Es compatible con SFTP fuera de la caja y es OpenSource.
Parece que SharpSSH se basa en bibliotecas Java (JSch y JCE) y examinar el extenso código fuente no me hizo confiar en que esta biblioteca se pueda usar en un entorno de producción. Una pequeña prueba de estrés dio como resultado excepciones inesperadas. –
Desafortunadamente SharpSSH no es compatible y no es muy estable para la producción. Algo comercial como nuestro SFTPBlackbox (http://www.sftp-net.com/) funcionaría mejor. –
Estoy de acuerdo, me parece muy de mala calidad. No me gusta el puerto java "en el lugar" que está sucediendo aquí. – Jeff
No hay ninguna solución para esto en el marco de .NET.
http://www.eldos.com/sbb/sftpcompare.php esboza una lista de opciones no disponibles.
su mejor apuesta gratis es extender SSH usando Granados. http://www.routrek.co.jp/en/product/varaterm/granados.html
No parece que Granados se pueda usar en entornos de producción: está desactualizado y aparentemente no es compatible. –
Desafortunadamente, no está en .NET Framework en sí. Mi deseo es que puedas integrarte con FileZilla, pero no creo que exponga una interfaz. Creo que tienen scripting, pero obviamente no será tan limpio.
He usado CuteFTP en un proyecto que hace SFTP. Expone un componente COM que creé un contenedor .NET. El truco, encontrarás, son los permisos. Se ejecuta maravillosamente con las credenciales de Windows que instaló CuteFTP, pero se ejecuta bajo otras credenciales y requiere permisos para establecerse en DCOM.
Tal vez usted puede script/control winscp?
Actualización: WinSCP ahora tiene a .NET library disponible como nuget package que soporta SFTP, SCP y FTPS
Buen punto. Encontré una guía para hacer exactamente eso: http://winscp.net/eng/docs/guide_dotnet – Raithlin
La [última versión] (http://winscp.net/eng/docs/library) ahora incluso tiene compatibilidad con .NET nativo. ! – fretje
Problemas al cargar al directorio remoto no raíz. La documentación dice que debes usar la ruta absoluta del servidor ("d: \ ftproot \ etc"), lo cual es ridículo en mi opinión. Incluso armado con ese conocimiento, nunca pude conseguir que el archivo vaya donde yo quería que fuera. –
Para otra opción no libre, intente edtFTPnet/PRO. Tiene soporte completo para SFTP, y también admite FTPS (y, por supuesto, FTP) si es necesario.
El siguiente código muestra cómo cargar un archivo a un servidor SFTP utilizando nuestro componente Rebex SFTP.
// create client, connect and log in
Sftp client = new Sftp();
client.Connect(hostname);
client.Login(username, password);
// upload the 'test.zip' file to the current directory at the server
client.PutFile(@"c:\data\test.zip", "test.zip");
client.Disconnect();
Puede escribir un registro de comunicación completo en un archivo utilizando una propiedad LogWriter de la siguiente manera. La salida de ejemplos (del componente FTP pero la salida SFTP es similar) se puede encontrar en here.
client.LogWriter = new Rebex.FileLogWriter(
@"c:\temp\log.txt", Rebex.LogLevel.Debug);
o interceptar la comunicación mediante eventos de la siguiente manera:
Sftp client = new Sftp();
client.CommandSent += new SftpCommandSentEventHandler(client_CommandSent);
client.ResponseRead += new SftpResponseReadEventHandler(client_ResponseRead);
client.Connect("sftp.example.org");
//...
private void client_CommandSent(object sender, SftpCommandSentEventArgs e)
{
Console.WriteLine("Command: {0}", e.Command);
}
private void client_ResponseRead(object sender, SftpResponseReadEventArgs e)
{
Console.WriteLine("Response: {0}", e.Response);
}
Para más información ver tutorial o download un juicio y se les samples.
Mi prueba limitada de varios clientes .NET SFTP indica que este producto comercial es una buena opción. –
También he usado RebEx antes cuando necesitaba usarlo para un paquete SSIS. Ellos tienen un buen soporte y documentación si lo que busca es una ruta comercial de terceros. –
- 1. ¿Cómo cargo un archivo javascript dinámicamente?
- 2. ¿Cómo cargo un archivo en un hash Perl?
- 3. Cómo eliminar un archivo de un servidor SFTP de forma programada utilizando SharpSSH?
- 4. ¿Cómo descargar un archivo de SFTP usando PHP?
- 5. ¿Cómo cargo un archivo html local en Jsoup?
- 6. ¿Cómo cargo un archivo en la consola de Python?
- 7. ¿Cómo cargo un archivo JavaScript con Jint en C#?
- 8. Respuesta correcta a un SFTP "abierto" en un archivo no existente
- 9. biblioteca de servidor Java SFTP?
- 10. ¿Cómo cargo un archivo de la carpeta config?
- 11. ¿Cómo cargo un archivo usando http post? Delphi 2009
- 12. ¿Puede tener usuarios virtuales que usen un servidor SFTP?
- 13. ¿Cómo cargo un objeto compartido en C++?
- 14. ¿Cómo cargo un documento a SharePoint con Java?
- 15. ¿Cómo cargo un archivo a WordPress usando un formulario de carga personalizado?
- 16. ¿Cómo cargo un archivo/directorio a una carpeta dentro de un depósito?
- 17. ¿Cómo cargo archivos grandes (> 25MB) a un servicio web?
- 18. ¿Cómo cargo un documento de diseño a CouchDB usando cURL?
- 19. ¿Cómo copio un archivo de un servidor a otro?
- 20. Dirección del servidor público de prueba SFTP
- 21. ¿Cómo se sube un archivo a un servidor FTP?
- 22. Copiando un archivo en sftp con biblioteca jsch
- 23. Trabajando en proyectos PHP en un servidor de desarrollo remoto a través de sFTP
- 24. ¿Cómo cargo un archivo a una columna varbinary (max) en SQL Server 2008, usando TSQL?
- 25. ¿Cómo cargo un commit de git específico?
- 26. ¿Cómo cargo el archivo localizado apropiado?
- 27. ¿Cómo cargo un archivo a través de Carrierwave sobre una API JSON?
- 28. ¿Cómo cargo las fuentes externas en un documento HTML?
- 29. ¿Cómo cargo un archivo sql.gz a mi base de datos? (importación)
- 30. Cómo comprobar si existe un archivo en un servidor externo
vea también las preguntas [Bibliotecas SFTP para .NET] (http://stackoverflow.com/questions/530330/sftp-libraries-for-net) y [Módulo FTP/SFTP para .NET] (http: // stackoverflow.com/questions/2731967/ftp-sftp-module-for-net) –
Otra alternativa es Renci SSH.NET. – CodesInChaos