Копирование объектов в новую папку S3, но только из определенных папок?

#ruby-on-rails #ruby #amazon-web-services #amazon-s3

Вопрос:

Я хочу скопировать кучу PDF-файлов из папок в моей корзине S3, папки, о которых идет речь, — это несколько папок, таких как DD.MM.YYYY, в папку под названием «Архив». Вопрос в том, как мне изолировать свой запрос на копирование, чтобы получать PDF-файлы только из папок в корзине со структурой имен DD/MM/YYYY?

Вот задача грабель, которую я построил. Однако я получаю сообщение об ошибке «Не знаю, как построить эту задачу».

 namespace :courts do
  task update_ocr_documents: :environment do
    OcrDocument.find_each do |ocr_document|
      ::Courts::Operations::OcrDocuments::RecognizeExisting.run(id: ocr_document.id, skip_auth: true)
    end
  end

  task sync_ocr_bucket: :environment do
    ::Courts::SyncronizeBucketJob.perform_now
  end

  task move_old_documents: :environment do
    bucket = Settings.file_storage.ocr_documents.s3_credentials.bucket
    file_util = Courts::Aws::FileUtil.new(bucket) # Should be called S3Util ?
    file_util.get_objects { |obj| obj.key.ends_with?('.pdf') } # 
     TODO: get only pdf files that are in the folders with names dd.mm.yyy }
    file_util.move_objects('archive')
  end
end
 

Комментарии:

1. Don't know how to build this task означает, что задача вызывается неправильно, а не то, что в коде есть ошибка.

2. @dbugger команда rake move_old_documents нет?

3. Зависит от пространства имен файла rake, которое вы не указали

4. @dbugger пространство имен в порядке, я прикрепил полный файл rakefile.

5. если вы замените все в методе на puts "Rake task called" , сможете ли вы успешно вызвать его?