В настоящее время у нас есть метод, который возвращает строку с форматированным CSV-файлом.Ruby конвертирует строку в файл для загрузки на FTP
string = EXPORT.tickets
Нам нужно загрузить этот файл CSV на FTP-сервер, как так
ftp = Net::FTP.new(server, username, password)
ftp.putbinaryfile(string)
однако, переменная string
, очевидно, является строка, а не бинарный файл как метод putbinaryfile ожидает. Я вижу два способа сделать это,
- преобразующего переменной
string
в файл первого использованияFile
- преобразовать строку непосредственно в файл с чем-то вроде
StringIO
ли это, кажется, как жизнеспособные варианты ? Если да, то как бы я это сделал, спасибо заранее!
EDIT:
Поскольку putbinaryfile метод ищет путь к файлу, а не фактического файла, он выглядит как мой лучший лучше будет создать файл с переменной string
. Может ли кто-нибудь привести пример того, как это можно сделать?
Это не 100%, 'putbinaryfile' ожидает PATH двоичного файла (который может быть строкой). Возможно, я сначала создаю файл (см. Http://devdocs.io/ruby/file#method-c-new), а затем загрузите его. Не забудьте удалить файл после его загрузки :) – mhutter
Вы правы, он ищет PATH.Что вы думаете обо мне, используя класс Ruby Tempfile? http://devdocs.io/ruby/tempfile – ruevaughn
Звучит неплохо! Еще одна вещь: Я ДУМАЮ, что вы можете использовать 'puttextfile' вместо' putbinaryfile', поскольку CSV - это просто текст, но обязательно проверьте это сначала ... – mhutter