#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"
, сможете ли вы успешно вызвать его?