Google云端硬盘,自动删除特定文件夹中超过7天的文件

时间:2018-09-14 14:03:52

标签: file google-drive-api directory backup

我正在使用Google驱动器从我的linux计算机存储我的每日备份。 但是我需要一个脚本,该脚本可以在7天后自动删除特定文件夹中的文件。 这样文件夹中就有7个备份。

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

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

我并不真的喜欢那种脚本。因此,如果有人可以帮助我,那将真的很棒。

1 个答案:

答案 0 :(得分:0)

您需要将REST API用于Google云端硬盘。有here

列出的几种语言的官方客户端库

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

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

然后,您可以根据文件名(如您指示的那样)或代码中files.list中的createdTime参数来过滤结果。通过将fields参数设置为逗号分隔的参数列表(例如,“ files(id,createdTime,name,mimeType)”)或简单地使用“ *”来获取每个字段,以确保在字段中包含createdTime。获取所有7天以上的文件的列表,然后调用files.delete。然后,您可以每天晚上在cron作业上运行此脚本,但是您希望对其进行部署。

或者,您可以使用非官方的Drive命令行工具,该工具将为您解决很多问题。