[英]WinSCP upload file to remote SFTP error: “Cannot create remote file – Permission denied”
我们正在使用 FileZilla 从远程 SFTP 服务器下载和上传一些手动过程。 使用客户端软件,我们没有任何权限问题。
最近我们决定使用 VB.NET 将其移动到预定函数中。 下载运行良好(所以我从我的代码中删除了它,只是为了使代码示例简洁)。
但是为了上传,程序遇到了一个错误:
WinSCP.SessionRemoteException: '无法创建远程文件 '/some path/on/remote/myFile.txt.filepart'。
没有权限。
错误代码:3
来自服务器的错误消息 (en): 权限被拒绝'
下面是上传文件的代码。
Using session As New Session
session.Open(sessionOptions)
Dim transferOptions As New TransferOptions
transferOptions.TransferMode = TransferMode.Binary
Dim transferResult As TransferOperationResult
' localFilePath = "C:\somepath\myFile.txt"
If Not String.IsNullOrEmpty(localFilePath) And File.Exists(localFilePath) Then
transferResult = session.PutFiles(localFilePath, "/some path/on/remote/", False, transferOptions)
transferResult.Check() 'error was thrown here
Else
Throw New FileNotFoundException("The file could not be found")
End If
End Using
任何帮助表示赞赏,感谢您的时间。
使用 SFTP 协议,WinSCP 默认通过临时文件传输超过 100 KB的文件。 如果您没有创建新文件的权限,这将不起作用。
在这种情况下,您需要通过临时文件(又名可恢复传输)禁用传输。 对于该设置TransferOptions.ResumeSupport
:
Dim transferOptions As New TransferOptions
transferOptions.ResumeSupport.State = TransferResumeSupportState.Off
transferResult =
session.PutFiles(localFilePath, "/remote/path/", False, transferOptions)
transferResult.Check()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.