英文:
Remove log files on aws s3 (rails7)
问题
在Rails 7中,用于删除AWS S3上的日志文件,有两种主要选项:S3自动化和定时任务(cron job)。
我编写了一些Rake任务来演示:
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
你可以选择使用这个Rake任务作为cron job来定期清理S3中的过期日志文件,或者你也可以考虑使用AWS S3自动化工具来管理日志文件的生命周期。这两种方法都可以用来删除S3上的日志文件,具体取决于你的需求和偏好。
英文:
Which option is better to remove log files on aws s3 for rails7? s3 automation vs cron job
I wrote some rake tasks.
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
答案1
得分: 1
Cron工作在您对日志数量有一些条件逻辑的情况下更好,否则使用S3自动化。如果选择Cron工作,您需要处理监控以检查作业是否失败。查看这里获取更多信息。
英文:
Cron job is better in case you have some conditional logics for the number of logs, otherwise s3 automation. If you go for cron jobs, you have to handle monitoring to check if jobs fail or not. Check here for more info.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论