繁体   English   中英

WinSCP 上传文件到远程 SFTP 错误:“无法创建远程文件 - 权限被拒绝”

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM