2014-11-13 2 views
0

Я пытаюсь загрузить файл на мои рельсах приложение, отправив локальное местоположение пользователя файла с помощью параметра, поэтому вход URL будет выглядеть следующим образом:Загрузить на Heroku рельсы приложения со строкой пути к файлу

http://rails-app.herokuapp.com/element?file=C: \ temp \ data.txt

Легко, если я работаю на своей локальной машине, так как я могу просто использовать File.read (имя файла), однако это не работает на heroku. Спасибо за любую помощь!

ответ

2

Прежде всего, Heroku имеет файловую систему только для чтения. Таким образом, вы не можете загрузить что-либо прямо в герою. Используйте что-то вроде Amazon S3 для хранения файлов.

Вторая проблема - ваш подход. При запуске приложения локально - он имеет доступ к вашему диску C: /. Но приложение, расположенное на удаленном сервере, не имеет доступа к вашим компьютерам C:/drive, поэтому он не может получить файл. Вы должны загрузить либо через поле файла браузера, либо через прохождение, доступное любому HTTP-ссылке.

+0

его просто текстовый файл со списком новых записей в базе данных, файл не нужно сохранять, просто читать. Я знаю, что это должно быть возможно, потому что почему-то рельсы делают это в фоновом режиме, когда вы загружаете файл в форме helper file_field. –

+1

при загрузке файла через посредник формы - ваш браузер отправляет содержимое файла в запрос POST. Но здесь вы передаете путь к файлу через GET. И сервер не может получить доступ к жесткому диску вашего компьютера. –

+0

Спасибо, что на самом деле указал мне в правильном направлении, мне нужно было выяснить, как работают почтовые запросы, но в конечном итоге удалось обойти эту проблему –

Смежные вопросы