使用google drive gem

时间:2017-08-07 12:31:19

标签: ruby-on-rails ruby google-drive-api backup discourse

我们为话语创建了synchronizer plugin,它应该将备份同步到Google云端硬盘服务帐户 为了保持管理员的谷歌驱动器帐户clutterfree,我们在同步器的末尾构建了一个方法,称为remove_old_files

def remove_old_files
  google_files = session.files
  sorted = google_files.sort_by {|x| x.created_time}
  keep = sorted.take(SiteSetting.discourse_sync_to_googledrive_quantity)
  trash = google_files - keep
  trash.each { |d| d.delete(true) }
end

我们在实例变量之前记住了会话对象。因此,使用session.files,我们会在google云端硬盘帐户中获取所有文件的数组。在sorted变量中,我们将它们从新到旧排序。在keep变量中,我们采用前几个(管理员设置数量),在trash变量中我们定义其余部分。在此之前,该方法在控制台中工作。 现在,在Google云端硬盘的文档中,File对象有一个delete方法:
File 'lib/google_drive/file.rb', line 182

    def delete(permanent = false)
       if permanent
         @session.drive.delete_file(id)
       else
         @session.drive.update_file(id, { trashed: true }, {})
       end
       nil
    end

但是当我尝试通过rails控制台删除时,它会告诉我Success - nil好像一切都很顺利。 但是!当我计算或调用它们时,文件仍然存在。即使我尝试删除它们设置permanent = true:/   为什么不谷歌删除旧的备份文件?

0 个答案:

没有答案