Question:
Hi Chilkat,
I am uploading files, then setting trying to set permissions to the file, but getting an error.
Code: success = sftp.SetPermissions("foldername/test1.txt", False, 777) If (success <> True) Then Console.WriteLine(sftp.LastErrorText) sb_LogDebug(sftp.LastErrorText) Exit Sub End IfUsing Chilkat 9.5.0.51
The details of the log are below:
ChilkatLog: SetPermissions: DllDate: Jun 23 2015 ChilkatVersion: 9.5.0.51 UnlockPrefix: CRMSOL.CB10716 Username: CRMNB5:tim Architecture: Little Endian; 64-bit Language: .NET 4.5 / x64 VerboseLogging: 0 SshVersion: SSH-2.0-OpenSSH_5.9 SftpVersion: 3 filename: fujitsu/test1.dat isHandle: 0 octalPermissions: 1411 FileAttr_v3: permissionsHex: 0x309 --FileAttr_v3 StatusResponseFromServer: Request: SetPermissions InformationReceivedFromServer: StatusCode: 4 StatusMessage: Failure --InformationReceivedFromServer --StatusResponseFromServer Failed. --SetPermissions --ChilkatLog
I found this reference about SFTP status codes on the web: https://winscp.net/eng/docs/sftp_codes
"Unfortunately, OpenSSH SFTP server uses always description “Failure”. Is such case, there is unfortunately no way to tell a reason of the failure."
I suspect the error is from an invalid permissions value (i.e. the bit flags may make no sense). You're passing decimal 777 in this code:
Code: success = sftp.SetPermissions("foldername/test1.txt", False, 777) If (success <> True) Then Console.WriteLine(sftp.LastErrorText) sb_LogDebug(sftp.LastErrorText) Exit Sub End If
The correction is to specify the permissions using the octal literal representation in the programming language you are using. For example, it might be this:
Code: success = sftp.SetPermissions("foldername/test1.txt", False, 0777) If (success <> True) Then Console.WriteLine(sftp.LastErrorText) sb_LogDebug(sftp.LastErrorText) Exit Sub End If