【问题标题】:Google Drive, auto delete files older than 7 days in specific folderGoogle Drive,自动删除特定文件夹中超过 7 天的文件
【发布时间】:2018-09-14 14:03:52
【问题描述】:

我正在使用 Google 驱动器来存储我每天从我的 linux 机器上制作的备份。 但我需要一个脚本,在 7 天后自动删除特定文件夹中的文件。 这样文件夹中有7个备份。

get的备份文件名为world-$(date +%d-%m-%Y).tar.gz 它将 %d %m 和 %Y 替换为它创建备份的日期月份和年份。 所以假设它今天创建了一个名为 world-14-09-2018.tar.gz 它存储在一个名为备份的文件夹中

有什么办法让它自动删除文件,所以不要将文件存储在垃圾箱中,而是在 7 天后完全删除它们。

我不太熟悉这类脚本。因此,如果有人可以帮助我,那就太好了。

【问题讨论】:

    标签: file google-drive-api directory backup


    【解决方案1】:

    您需要将REST API 用于 Google 云端硬盘。有几种语言的官方客户端库,列出here

    通过 OAuth2 验证您的帐户。根据您使用的客户端库,有不同的工具可以执行此操作。我最熟悉 Python SDK,我使用的是 Google 的oauth2client。 run_flow() 命令是获取 OAuth2 刷新令牌的简单方法,然后您可以使用该令牌对 API 调用进行身份验证。 Here 是通过 OAuth2 对 Google Drive 进行身份验证的完整文档。

    通过身份验证后,您可以调用files list 端点。默认情况下,这将列出我的驱动器中的所有文件。您可以将搜索限制为仅这些文件,这样您就不必每次都使用search query 遍历所有文件。如果您的备份数量超过了单个页面的容量(看起来不像,尤其是最大 pageSize 为 1000),您将不得不 paginate 您的电话。

    然后,您可以通过文件名(如您所指)或代码中 files.list 中的 createdTime 参数过滤结果。确保在字段中包含 createdTime,方法是将 fields 参数设置为以逗号分隔的参数列表,即“files(id,createdTime,name,mimeType)”,或者简单地说,“*”来获取每个字段。获取所有超过 7 天的文件列表,然后致电 files.delete。然后,您可以每晚在 cron 作业上运行此脚本,但您想部署它。

    或者,您可以使用非官方的Drive 命令行工具,它会为您处理很多事情。

    【讨论】:

      猜你喜欢
      • 2017-05-15
      • 2018-06-25
      • 2021-07-09
      • 2016-09-20
      • 2018-06-20
      • 1970-01-01
      • 2012-05-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多