我的一个客户的备份硬盘驱动器上遇到了一个奇怪的问题:该硬盘驱动器采用 FAT32 格式,昨晚我们的备份作业在子目录上抛出了一个错误,声称它无法复制必须复制的文件。
当然,我首先检查了磁盘大小,但是有足够的空间。给出的错误是0x80070052,如果我将其放入搜索引擎,我会得到如下结果:http ://www.quickonlinetips.com/archives/2007/09/how-to-fix-error-0x80070052-on-usb-闪存驱动器/
但该分区的根目录下只有 8 个文件/目录。所以我继续决定自己测试一些东西。创建一个文件(例如名为“test.txt”)确实有效。但是使用备份作业失败的文件名之一创建文件不起作用,而是出现了与上面相同的错误。我测试了一下,发现我可以在该子目录中创建一个包含 10 个字符的文件,再多一个字符,就会失败。
检测到这一点后,我在该子目录中创建了一个目录(名为“test”),并将一些文件从子目录移动到新目录中,完成后,我尝试创建一个包含 11 个字符的文件(这不起作用)之前)并且它起作用了。
现在,显然从观察来看,对于 FAT32 的单个目录内的所有文件名可以使用多少个字符,似乎存在某种硬限制,但我找不到有关该硬限制的任何信息,或者是否有其他文件系统(尤其是 NTFS) ,我猜这将是这种情况下的替代方案)具有类似的限制。
如果有人可以向我提供有关观察到的行为的信息,那就太好了!
编辑
一位同事告诉我将确切的文件夹放在另一个 FAT32 驱动器上,因为他曾经在使用特定制造商的 USB 控制器时遇到过问题。我尝试了两个来自不同制造商的 USB 记忆棒,均为 FAT32 格式,两者都显示出与上述完全相同的行为。
让您了解所涉及的文件数量:大约有 10200 个文件,每个文件的文件名长度在 80 到 110 个字符之间,不包括文件路径(这似乎无关紧要),因此大约有涉及一百万个字符。
我使用的是 Apache 2.2 而不是 2.4,这解释了标题中的错误。Brain99发表评论后,我发现我有2.2,将我的配置调整为他建议的(仍然不起作用),尝试了一下,睡了一晚,第二天我发现,我忘记了包含启用 mod 的目录的语句!
现在我只需要服务器让我从一个特定的文件夹下载文件(在我的情况下,我为该任务选择了 /opt/myFolder)
发行版是 Debian 6.0
编辑开始
Apache 版本是 2.4,根据他们的官方文档,不推荐使用 Order/Allow 子句,不应再使用
我是个白痴:Apache 版本是 2.2。
edit_end
我在 apache2.conf 中的目录指令如下所示:
<IfModule dir_module>
DirectoryIndex index.html index.htm index.php
</IfModule>
ServerRoot "/etc/apache2"
DocumentRoot "/opt/myFolder"
<Directory />
Options FollowSymLinks
AuthType None
AllowOverride None
Require all denie
</Directory>
<Directory "/opt/myFolder/*">
Options FollowSymLinks MultiViews
AllowOverride None
AuthType None
Require all allow
</Directory>
Run Code Online (Sandbox Code Playgroud)
当我尝试访问该文件夹中的文件 ( http://myserver.de/aTestFile.zip ) 时,出现内部服务器错误。Apache 还将以下错误写入其日志:
configuration error: couldn't check user. Check your authn provider!: /aTestFile.zip
Run Code Online (Sandbox Code Playgroud)
如果我不需要任何身份验证,为什么我需要一个身份验证提供程序?另外我希望有人可以向我解释我需要什么样的 AuthenticationProvider 。每次我搜索这些东西时,都会有人问我如何使用密码保护文件/目录或限制对某些 …