При использовании Amazon Ruby SDK для S3 мне нужно перечислить ВСЕ файлы в огромной корзине, чтобы определить любые пустые файлы, т. е. obj.content_length == 0
Я написал скрипт, чтобы сделать это следующим образом:
bucket.objects.each() do |obj|
total_objs += 1
if obj.content_length == 0 then
empty_files += 1
puts obj.key
end
end
... но я обеспокоен тем, что это приведет к загрузке каждого файла для определения размера файла. Действительно ли SDK загружает файл, чтобы узнать размер, или это просто метаданные, которые извлекаются, а затем объект загружается лениво, если вызывается соответствующий метод?
Кроме того, есть ли более эффективный способ добиться того, что я пытаюсь сделать?