|
|
@ -47,6 +47,7 @@ module Mastodon |
|
|
|
|
|
|
|
|
|
|
|
option :start_after |
|
|
|
option :start_after |
|
|
|
option :prefix |
|
|
|
option :prefix |
|
|
|
|
|
|
|
option :fix_permissions, type: :boolean, default: false |
|
|
|
option :dry_run, type: :boolean, default: false |
|
|
|
option :dry_run, type: :boolean, default: false |
|
|
|
desc 'remove-orphans', 'Scan storage and check for files that do not belong to existing media attachments' |
|
|
|
desc 'remove-orphans', 'Scan storage and check for files that do not belong to existing media attachments' |
|
|
|
long_desc <<~LONG_DESC |
|
|
|
long_desc <<~LONG_DESC |
|
|
@ -86,6 +87,8 @@ module Mastodon |
|
|
|
record_map = preload_records_from_mixed_objects(objects) |
|
|
|
record_map = preload_records_from_mixed_objects(objects) |
|
|
|
|
|
|
|
|
|
|
|
objects.each do |object| |
|
|
|
objects.each do |object| |
|
|
|
|
|
|
|
object.acl.put(acl: 'public-read') if options[:fix_permissions] && !options[:dry_run] |
|
|
|
|
|
|
|
|
|
|
|
path_segments = object.key.split('/') |
|
|
|
path_segments = object.key.split('/') |
|
|
|
path_segments.delete('cache') |
|
|
|
path_segments.delete('cache') |
|
|
|
|
|
|
|
|
|
|
|