介绍
Google Drive for Desktop Windows 客户端(以前称为 Google Backup & Sync)使用两个临时隐藏文件夹(设置在本地 Google Drive 文件夹根目录中)来同步在线和本地的文件和文件夹。它们是:
.tmp.drivedownload
.tmp.driveupload
当 Google Drive for Desktop 同步文件和文件夹时,这些文件和文件夹会暂时存储到上述文件夹中。
例如,让我们关注文件从浏览器上传到 Google Drive 时发生的过程:
- 使用浏览器将文件 notes.txt 上传到 Google Drive 的文件夹中
My Drive > Mike
- 上传完成后,客户端计算机上运行的 Google Drive for Desktop(或备份和同步)将检测到更改并下载上述文件
- 该文件
notes.txt
被下载到.tmp.drivedownload
本地计算机,然后,假设c:\drive
是 Google Drive 根文件夹,它将被移动到该文件夹中c:\drive\Mike
所有这些都是完全合理的,但是,一旦运行 Google Drive for Desktop 客户端的本地计算机是 Windows Server,就会出现问题。
在这种情况下,多个用户需要以安全的方式访问文件,因为系统必须确保完全尊重文件权限。在以下方案中,每个用户应该只连接到自己的文件夹。
假设在云端,Google Drive 帐户“[电子邮件保护]”帐户与用户 Mike、Sue、Bob 共享一些文件夹。每个用户只能访问自己的文件夹。
在运行 Google Drive for Desktop 客户端的本地 Windows Server 上,文件夹结构复制了在线版本,并相应地设置了 NTFS ACL
在上面的场景中,看看当用户 Mike 使用浏览器将文件上传到 Google Drive 时会发生什么:
- 该文件
otherNotes.txt
已上传至 Google Drive 文件夹My Drive > Mike
- 上传完成后,在客户端计算机(即 Windows Server 计算机)上运行的 Google Drive for Desktop 客户端(或备份和同步)将检测到更改并下载上述文件
- 文件
otherNotes.txt
下载到本地计算机的文件夹中.tmp.drivedownload
,该文件夹的 ACL 由安装了 Google Drive for Desktop 客户端的本地用户继承(通常是 SYSTEM 和管理员帐户),因此下载的文件将继承这些权限。 - 此时,上述文件被移动到文件夹
c:\drive\mike
,(最初设置为授予用户 Mike 独占访问权限),但是,由于文件正在同一分区之间移动,它将保留上一步中继承的 ACL,从而阻止用户 Mike 访问此文件(请参阅本文,以更好地了解在同一分区或跨多个分区移动文件时 ACL 的影响)
以前有效的解决方法(现在已失效!!)
如上文所述,当文件或文件夹跨卷/分区移动时,它将继承目标文件夹的 ACL,因此,在 Google Drive for Desktop 客户端出现之前,解决此问题的技巧是:
- 删除
.tmp.drivedownload
文件夹; - 创建指向另一个卷上的文件夹的符号链接
.tmp.drivedownload
。例如:mklink /d C:\drive\.tmp.drivedownload \\QNAP-TS231P\tmpDrive
这样做之后,Google Drive 中的互联网文件就会下载到.tmp.drivedownload
并移动到相应的本地文件夹,但是,由于该.tmp.drivedownload
文件夹位于不同的分区/卷上,因此文件会按预期正确继承目标文件夹中设置的 ACL。
不幸的是,自从引入 Google Drive for Desktop 客户端(它取代了好用的备份和同步)以来,这一切都被打破了,它不允许上述技巧,因为一旦.tmp.drivedownload
创建了符号链接,Google Drive for Desktop 客户端在尝试将文件或文件夹从云端同步到本地计算机时就会抛出错误
进一步调查 Google Drive 桌面日志将会显示错误,例如:
<<some data here>> failed with Status::GENERIC_ERROR
你会尝试什么?
答案1
面临类似的情况,不幸的是,谷歌似乎正在阻止符号链接,并锁定询问此问题的线程。
- Google Drive 文件夹内的符号链接会导致 Google Drive for Dekstop 中的同步错误。
- 桌面版驱动器和 Windows 连接/符号链接--> Windows,但存在类似的问题。
- 是否可以为您打算在两个“google 团队驱动器”之间共享的文件创建符号链接?
- [已解决] 如何配置 Google Drive 桌面应用以在两台计算机之间同步文件--> 但是,最有希望的解决方案是,它要求您镜像文件而不是流式传输它们。
- 桌面版 Google Drive (macOS) 在遇到符号链接时出错,将 CPU/RAM 固定到最大使用率
- 团队驱动器中的符号链接(shift+z)
- 我如何/可以创建从 ChromeOS 到 Linux VM 的符号链接吗?
我可以继续列举,但你明白我的意思,谷歌认为这是一个漏洞,因此正在阻止它。