向FTP服务器上传新文件时,如何防止同时在服务器上删除的文件重新上传

When uploading new files to FTP server, how to prevent reupload of files that were deleted on the server meanwhile

我需要自动将一些文件从客户端 PC 上传到中央服务器。我们正在为在线游戏社区建立中央统计数据,处理游戏回放文件。

文件在服务器上处理,然后不再需要它们,应该将其删除,以免 运行 最终从磁盘 space 中溢出。我也只需要部分文件,但由于文件需要非常复杂的处理,包括解密,所以我只能在服务器处理后才能确定。

我最初的想法是使用可编写脚本的客户端(例如 WinSCP),并使用一些 Windows 调度程序条目来使其自动化。 WinSCP 文档看起来很不错。我有点犹豫,因为我看到以下问题:

我在想,也许有人以前做过同样的事情,可以给些建议。

WinSCP 网站上有一篇文章处理所有这些问题:
How do I transfer new/modified files only?

对于像您这样的高级逻辑,它使用 PowerShell script with use of WinSCP .NET assembly

  • 特别是有一段你会感兴趣:Remembering the last timestamp – 它展示了如何记住上次上传文件的时间戳,以便下次传输仅较新的文件,即使以前上传的文件已不在服务器上。

    该示例适用于 Session.GetFiles 的下载,但稍作改动后它也适用于 Session.PutFiles 的上传。

  • 也引用了另一篇文章:Remember already downloaded files so they are not downloaded again,它展示了另一种方法——将已经传输的文件的名称存储到一个文件中,下次使用它来决定哪些文件是新.