gpt4 book ai didi

powershell - WinSCP .NET 程序集 SynchronizeDirectories : Upload of file . .. 成功,但设置权限和/或时间戳时出错

转载 作者:行者123 更新时间:2023-12-02 22:46:44 31 4
gpt4 key购买 nike

我在 PowerShell 中使用 WinSCP .NET 程序集与 SFTP 服务器进行文件同步。我正在使用以下代码进行同步:
http://winscp.net/eng/docs/library_session_synchronizedirectories#powershell
问题是,当这个脚本通过上传到 SFTP 同步文件时,它会产生错误,尽管它实际上上传了文件。脚本立即终止并出现以下错误:

Upload of C:\FileSync\files\test2.txt succeeded

Permissions of /Reports/test2.txt kept with their defaults

Setting timestamp of /Reports/test2.txt failed:
WinSCP.SessionRemoteException: Upload of file 'test2.txt' was successful, but error occurred while setting the permissions and/or timestamp.
If the problem persists, turn off setting permissions or preserving timestamp. Alternatively you can turn on 'Ignore permission errors' option.
---> WinSCP.SessionRemoteException: The server does not support the operation.
Error code: 8
Error message from server: SSHServerAPI.SFTP.fxp_attrs
--- End of inner exception stack trace ---



我没有找到任何方法来“忽略权限错误”,因为它在错误中建议。
通过从 SFTP 下载文件进行同步时,脚本不会提示。
请问有什么帮助吗?

最佳答案

该错误记录在此处:
https://winscp.net/eng/docs/message_preserve_time_perm

  • 我假设您没有启用设置权限(默认情况下是关闭的)。如果您这样做了,请通过设置 TransferOptions.FilePermissions 将其关闭。 (见下文)。
  • 您的服务器可能不支持更新远程文件的时间戳。这使得允许针对此类服务器的文件本地到远程同步变得复杂,因为时间戳是 primary criteria来比较文件。
  • 一般来说,关闭同步更新时间戳是没有意义的,因为更新基本上是同步的一个组成部分。
  • “忽略权限错误”的提示适用于基本文件传输。如前所述,它对同步没有意义。

  • 所以你所能做的就是:
  • 关闭更新时间戳(设置 TransferOptions.PreserveTimestamp );
  • 并使 WinSCP 在比较文件时不考虑时间戳(将 criteria parameter Session.SynchronizeDirectories 设置为 [WinSCP.SynchronizationCriteria]::SizeNone )。

  • 尽管这种同步如何有意义是值得怀疑的。
    $transferOptions = New-Object WinSCP.TransferOptions
    ...
    $transferOptions.FilePermissions = $Null # This is default
    $transferOptions.PreserveTimestamp = $False

    $synchronizationResult = $session.SynchronizeDirectories(
    [WinSCP.SynchronizationMode]::Remote, "d:\www", "/home/martin/public_html",
    $False, $False, [WinSCP.SynchronizationCriteria]::Size)

    关于powershell - WinSCP .NET 程序集 SynchronizeDirectories : Upload of file . .. 成功,但设置权限和/或时间戳时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36436315/

    31 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com