哪个选项更适合于删除AWS S3上的Rails7日志(log)文件?S3自动化与cron作业(job)

我写了一些瑞克任务.

task :delete_stale_logs do
    s3 = Aws::S3::Resource.new(
      region: ENV['AWS_REGION'],
      access_key_id: ENV['AWS_ACCESS_KEY_ID'],
      secret_access_key: ENV['AWS_SECRET_ACCESS_KEY']
    )

    bucket = s3.bucket(ENV['AWS_BUCKET'])

    bucket.objects.each do |object|
      if object.key.include?('.log') && object.last_modified < Time.now - 30.days
        object.delete
        puts "Deleted #{object.key}"
      end
    end
  end
end

推荐答案

如果您对日志(log)数量有一些条件逻辑,则Cron工作更好,否则S3自动化.如果要执行cron作业(job),则必须处理监视以判断作业(job)是否失败.更多信息,请查看here.

Ruby-on-rails相关问答推荐

HTTP:MimeNegotiation::InvalidType(html不是有效的MIME类型):""

Rails 7,Hotwire 动态表单,更新值不起作用

序列化来自关联的不可变数据是个好主意吗?

如何在 Ruby on Rails 中正确存储 BigDecimal

Rails 连接并包含连接表中的列

如何在 Rails 中使用延迟作业(job)取消预定作业(job)?

Rails Scope 返回 all 而不是 nil

rails 3 - link_to 销毁不工作

如何在我的 rails 应用程序中测试 ActiveRecord::RecordNotFound?

使用devise gem点击确认链接后避免登录?

如何在rails中发回js.haml

Rails ActiveRecord 查询日期范围

单击表格行(使用 bootstrap 程序)时,如何使用模式显示数据?

未定义的方法 attr_accessible

Rails 成语避免在 has_many 中重复:通过

Rails 错误:无法批量分配受保护的属性

Rails 5.1:未知 firstpos:NilClass - 问题重新加载应用程序

ActiveRecord 事务中的错误处理?

我怎样才能看到水豚在失败的黄瓜步骤中发现了什么?

Heroku - 在浏览器中显示当前提交的哈希