A. *_*tia 2 python macos google-drive-api
我正在使用虚拟云端硬盘访问我的 Google 云端硬盘文件。
所以我在 Python 中有我所有 Google Drive 文件的列表(使用os.path.walk),但我想知道是否有可能获得文件在线链接。
我在 Mac OS X 上使用 Finder,通过二次点击,我有一个选项“用 Google Drive 打开”,它可以直接在我的浏览器上打开文件。我想自动对我的所有文件做同样的事情。
我最近发现了一种更有效的方法来检索位于 Google Drive File Stream 文件系统中的任何给定文件/文件夹的 Drive API“文件 ID”。虽然我在 Windows 系统上发现了这个功能,但在 Mac OS X 上可能也有类似的功能。
我不知道到底是什么机制允许下面描述的功能,但它的功能几乎与 NTFS 备用数据流的工作方式相同。问题是,Drive File Stream 的虚拟驱动器的属性显示它被分区为不支持备用数据流的 FAT32。也许 Google 的文件系统驱动程序只是模拟 NTFS 备用数据流的行为。无论如何,虚拟云端硬盘驱动程序添加了一种机制,用于读取附加到位于其文件系统中的文件/文件夹的特殊元数据。可以通过在任何以冒号为后缀的文件/文件夹路径上调用“ReadFile”来访问此元数据,后跟一个描述要检索的元数据的特殊标识符。这些是标识符 I'
在 Windows 上,从命令行读取此元数据的一种简单方法是使用“type”命令。以下示例将为您提供位于 Google Drive 根目录中的文件“test.txt”的 Drive API 文件 ID:
type "G:\My Drive\test.txt:user.drive.id"
Run Code Online (Sandbox Code Playgroud)
注意:如果您在创建新文件/文件夹并随后快速读取“user.drive.id”的某种类型的脚本中使用它,请注意生成“真实”文件 ID 可能需要几秒钟的时间. 如果您读取 'user.drive.id' 的值并且它以 'local' 开头,这意味着它还没有生成实际的文件 ID。在我看来,解决这个问题的最好方法是创建一个异步循环,在检查之间休眠,然后在不再以“local”开头时返回文件 ID。
我个人不使用 Mac,所以我绝对不是最有资格就 Mac 的使用提供建议的人。话虽如此,我确实对 Linux 有一些经验,而且我相信 OS X 使用了很多相同的命令,因为它是基于 Unix 的。如果 Windows 功能与 OS X 直接相关(我完全不确定),我相信以下命令应该可以实现与上面提供的 Windows 命令相同的功能:
cat "/Volumes/GoogleDrive/My Drive/test.txt:user.drive.id"
Run Code Online (Sandbox Code Playgroud)
我希望这些信息对您或其他可能遇到此问题的人有用。我知道这对我的 Python 应用程序非常有价值,因为它允许我使用虚拟云端硬盘已经缓存的数据,而不必为每个单独的文件(在我的情况下是成千上万个)进行单独的 API 调用。祝你的项目好运!