Usando el ensamblado .NET de WinSCP para cargar un archivo. OperationResultBase.Check()
es tirar el siguiente error:WinSCP: ¿Cómo asegurarse de que la carga de SFTP cambie de .zip.filepart a .zip?
WinSCP.SessionRemoteException: Transfer was successfully finished, but temporary transfer file 'testfile.zip.filepart' could not be renamed to target file name 'testfile.zip'. If the problem persists, you may want to turn off transfer resume support.
Parece que esto ocurre con cualquier archivo zip que intento enviar. Si hace una diferencia, estos son archivos zip creados con la biblioteca DotNetZip.
El código que estoy usando, tomada más o menos directamente desde el ejemplo en la documentación de WinSCP:
public void uploadFile(string filePath, string remotePath)
{
TransferOptions transferOptions = new TransferOptions();
transferOptions.TransferMode = TransferMode.Binary;
TransferOperationResult transferResult;
transferResult = currentSession.PutFiles(filePath, remotePath, false, transferOptions);
transferResult.Check();
foreach (TransferEventArgs transfer in transferResult.Transfers)
{
Console.WriteLine("Upload of {0} succeeded", transfer.FileName);
}
}
Discussion over at the WinSCP forum indica que el conjunto aún no permite un control programático de apoyo a la transferencia de reanudación. ¿Hay una solución para esto?
Parece extraño para mí que la carga está utilizando un nombre de archivo diferente que el nombre del archivo deseado en realidad. ¿Tienes control sobre eso? – sarnold
@sarnold, de la documentación de WinSCP: "Cuando se transfiere un archivo con el protocolo SFTP, primero se transfiere a un archivo temporal con la extensión .filepart. Solo después de que se complete la transferencia, se elimina la extensión". – sigil
Si tiene acceso al servidor, ¿es posible ejecutar algo así como Process monitor from SysInternals para ver qué sucede cuando finaliza la carga del archivo? Por ejemplo, un programa antivirus puede comenzar a escanear el archivo en el momento en que se cierra el archivo y seguir accediendo al archivo cuando se intenta cambiar el nombre. – sgmoore