Команда Ruby загрузите несколько папок из S3 с помощью интерфейса командной строки AWS

#ruby #aws-cli

Вопрос:

Я работаю над резервным копированием некоторых учетных записей из моей корзины с префиксом id , когда я выполняю один раз, когда идентификатор работает правильно, но когда я использовал несколько идентификаторов, он завершит мою команду ruby. Я проверял, ошибка в том, когда он запускается exec command . Я пытался выяснить, почему он ломается, но это занимает больше времени. Кто-нибудь может мне помочь, почему?

test.txt с 1 идентификатором:

 1
 

test.txt с несколькими идентификаторами:

 1,2,3
 

Мой код:

 file_names = ["test.txt"]
Dir.mkdir("logs") unless Dir.exist?("logs")
Dir.mkdir("data") unless Dir.exist?("data")

file_names.each do |file|
  out_file = File.new("logs/#{file}", "w")
  out_file.puts("Start read file #{file}")

  member_ids = File.read("#{file}").strip!.split(",")
  member_ids.each do |id|
    Dir.mkdir("data/#{id}") unless Dir.exist?("data/#{id}")
    command = "aws s3 sync s3://mybucket/#{id}/ data/#{id}/"

    exec command
    out_file.puts("#{id}")
  end

  out_file.puts("Finished read file #{file}")
  out_file.close
end
 

Ответ №1:

Эта ошибка при использовании exec command , измените ее на system command рабочую 😀