Получение файлов из S3, помещение их в папку heroku / tmp, разархивирование и загрузка обратно в s3 - PullRequest
3 голосов
/ 21 октября 2011

Я разрабатываю приложение, которое пытается сделать следующее:

  1. получает почтовые файлы от amazon s3
  2. помещает их в папку heroku # {Rails.root} / tmp
  3. распаковка файлов
  4. загрузить их обратно на s3
  5. удаляет временные файлы

Все работает, если я запускаю приложение локально, но когда я пытаюсь запустить приложение на heroku, оно просто не работает. Сценарий запускается и не выдает ошибку, но файлы не переносятся в папку tmp.

Нужно ли делать что-то другое для хранения файлов в папке heroku tmp? Требуется ли Process.pid в именах файлов?

Я использую AWS :: S3 :: S3Object.url_for для генерации временных URL-адресов для получения файлов из s3

Я использую следующий код для получения файлов:

Net::HTTP.start("s3.amazonaws.com") { |http|
    resp = http.get(file_path)
    open("#{Rails.root}/tmp/files/#{tmp_save_path}", "wb") { |file|
        file.write(resp.body)
    }
}

Спасибо за вашу помощь.

1 Ответ

6 голосов
/ 21 октября 2011

Если вы не знаете больше об этом фрагменте, я думаю, что каталог "# {Rails.root} / tmp / files / ..." не существует в Heroku (это должно повысить: Errno::ENOENT: No such file or directory).Попробуйте использовать mkdir_p, чтобы создать его перед каждым вызовом (помните, что Heroku очистит tmp).Вам нужно будет разобрать папку по пути (см. утилиты файлов ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...