ruby 这个Ruby脚本将批量删除超过30天的所有Slack文件。只需从https://api.slack.com/web#authentication添加您的API令牌即可

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ruby 这个Ruby脚本将批量删除超过30天的所有Slack文件。只需从https://api.slack.com/web#authentication添加您的API令牌即可相关的知识,希望对你有一定的参考价值。

require 'net/http'
require 'json'
require 'uri'

@token = ''

def list_files
  ts_to = (Time.now - 30 * 24 * 60 * 60).to_i # 30 days ago
  params = {
    token: @token,
    ts_to: ts_to,
    count: 1000
  }
  uri = URI.parse('https://slack.com/api/files.list')
  uri.query = URI.encode_www_form(params)
  response = Net::HTTP.get_response(uri)
  JSON.parse(response.body)['files']
end

def delete_files(file_ids)
  file_ids.each do |file_id|
    params = {
      token: @token,
      file: file_id
    }
    uri = URI.parse('https://slack.com/api/files.delete')
    uri.query = URI.encode_www_form(params)
    response = Net::HTTP.get_response(uri)
    p "#{file_id}: #{JSON.parse(response.body)['ok']}"
  end
end

p 'Deleting files...'
files = list_files
file_ids = files.map { |f| f['id'] }
delete_files(file_ids)
p 'Done!'

以上是关于ruby 这个Ruby脚本将批量删除超过30天的所有Slack文件。只需从https://api.slack.com/web#authentication添加您的API令牌即可的主要内容,如果未能解决你的问题,请参考以下文章

使用 Mongoid 和 Ruby 查询最近 30 天的日期范围?

MySQL 版本 5.5.37:使用 CURSOR 删除超过 30 天的表

使用shell巧妙高效的批量删除历史文件或目录

批量执行命令

如何使用 bash 命令或 Ruby 使用 ffmpeg 将 mp4 文件批量转换为 ogg

如何使用 ruby​​ 将单个记录写入 Redshift 数据库?