Compare commits

...

10 Commits

Author SHA1 Message Date
Hugo Gameiro
7ae78feba3
Merge b23a68168a into 94bceb8683 2025-07-11 14:05:41 +00:00
Hugo Gameiro
b23a68168a
Fix Layout/EmptyLineAfterGuardClause 2024-12-18 14:47:05 +00:00
Hugo Gameiro
bd769970fa
Attempt to fix lint Layout/EmptyLineAfterGuardClause 2024-12-18 12:06:24 +00:00
Hugo Gameiro
bb04f0b561
record_map is no longer needed after refactor 2024-12-18 11:48:01 +00:00
Hugo Gameiro
ba3e30cf93
Clean trailing whitespace 2024-12-18 11:43:14 +00:00
Hugo Gameiro
b9638a6b82
Reduce complexity after recent refactor 2024-12-18 11:33:32 +00:00
Hugo Gameiro
6434d8ab4b
Fix directory.files.all not being converted to array 2024-12-18 11:27:05 +00:00
Hugo Gameiro
a5ac53d326
Clean up 2024-10-30 10:44:43 +00:00
Hugo Gameiro
fbaca0c953
Merge branch 'main' into remove-orphans-fog 2024-10-30 10:28:52 +00:00
Hugo Gameiro
03f888806a
Add fog storage support for tootctl media remove-orphans 2024-10-30 10:01:25 +00:00

View File

@ -142,7 +142,41 @@ module Mastodon::CLI
end
end
when :fog
fail_with_message 'The fog storage driver is not supported for this operation at this time'
fog_directory = Paperclip::Attachment.default_options[:fog_directory]
connection = Fog::Storage.new(Paperclip::Attachment.default_options[:fog_credentials])
directory = connection.directories.get(fog_directory)
last_key = options[:start_after]
loop do
objects = begin
directory.files.all(prefix: prefix, marker: last_key, limit: 1000).to_a
rescue => e
progress.log(pastel.red("Error fetching list of files: #{e}"))
progress.log("If you want to continue from this point, add --start-after=#{last_key} to your command") if last_key
break
end
break if objects.empty?
last_key = objects.last.key
objects.each do |object|
path_segments = object.key.split('/')
progress.increment
next unless orphaned_file?(path_segments)
begin
object.destroy unless dry_run?
reclaimed_bytes += object.content_length
removed += 1
progress.log("Found and removed orphan: #{object.key}")
rescue => e
progress.log(pastel.red("Error processing #{object.key}: #{e}"))
end
rescue UnrecognizedOrphanType
progress.log(pastel.yellow("Unrecognized file found: #{object.key}"))
end
end
when :azure
fail_with_message 'The azure storage driver is not supported for this operation at this time'
when :filesystem