sftp如何替换文件?

Som*_*ody 2 sftp upload

例如我有一些http静态服务器。我正在通过 sftp 处理 .js 文件。保持它们同步。我想知道 .js 文件是否会立即替换,或者 stfp 服务器是否会将其作为流写入该文件?

例如:

  • 客户端开始上传文件
  • 读取流已打开
  • 服务器接受该请求
  • 打开写入流到文件位置
  • 发送到服务器的块
  • 接受块并通过管道传输到写入流
  • http静态服务器正在尝试访问尚未完全上传的文件并选择部分上传的文件?
  • 结果=网页上的js错误

或者

  • sftp 将整个文件加载到内存中
  • 然后将整个文件从内存转储到文件中

这对我来说是最好的场景。

没有时间检查它是如何工作的。任何解释都会很好。

Jam*_*man 5

scp并将sftp就地替换文件,所以理论上 HTTP 客户端可以尝试获取部分上传的文件。

您可以通过使用rsyncSSH 来缓解此问题,因为sftp这会先写入临时文件,然后替换该文件。rsync还可以配置为备份它替换的任何文件。