并发FTP访问


8

FTP服务器如何处理对同一文件的并发访问,即一个用户在更新文件而另一个用户在读取同一文件?我应该担心获取损坏的数据吗?是否依赖于FTP服务器甚至操作系统?

Answers:


2

我认为FTP服务器本身无法处理此问题。
底层文件系统将管理此处涉及的访问。

如果在写入之前开始读取,则读取通常会得到较旧的版本。

您应该根据
服务器文件系统对被覆盖文件的处理方式,获得此问题的答案。


1

我认为FTP实现无法解决此问题,并且操作系统的工作方式会有所不同,Windows可能会锁定文件,Linux会为您提供部分数据。

是的,您应该担心,特别是在高使用率的情况下。我过去发现的解决方案最多不过是粗略的,包括用于上载/下载的不同文件夹,以及在文件完全上载后从上载复制到下载的监视过程。

随着文件变长和/或人们从缓慢的连接上载,情况将变得更糟。


0

我很确定你会遇到问题。尝试这个:

开始将大文件上传到FTP服务器。刷新要上传到的文件夹的视图,您将看到文件大小增加并且上传进度。

如果使用.mp3文件尝试此操作。您可以通过浏览器访问它,看到它只会播放到当前已上传的位置。

这就是为什么Dreamweaver之类的程序具有签入/签出系统的原因。因此,如果某人正在处理.html文件,则其他人将无法上载较旧的版本或引起此类问题。

我不认为FTP使用任何类型的临时文件或排队...


正确。我曾经解压缩过一个实际上并没有完全传输的文件。当然,还有奇怪的错误消息……
Arjan

我认为更新和现有文件与创建新文件不同(读取不会在创建发生之前开始,然后将在写入之后开始)。如果读取超出写入范围,则将导致读取不完全终止。ZIP文件不完整将显示损坏。不完整的mp3会播放到损坏的第一点(我认为)。那是文件格式的区别。
NIK

对现有文件的修改/覆盖应标识正在进行的读取并创建要写入的新版本,保留较旧的版本以供读取完成。这就是为什么我在回答中说,在这种情况下,典型的文件系统会提供文件的较旧副本。
NIK

0

每当我尝试访问尚未上传的页面时,都会得到“加载时重置连接”。我认为这实际上取决于软件。


-1

在这种情况下,使用修订控制软件会有所帮助,请查看GitSVN,请注意,除了这两种以外,还有两种主要类型(集中式和分布式)以及许多其他应用程序。


这个答案与这个问题完全无关...
Kristian

这些系统中的操作是原子的,因此您无法获得不完整的文件,问题已解决。
Shadok

是的,我知道,但是问题是关于FTP服务器的
Kristian
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.