Принятие его на самом деле является символьной ссылкой,
$ rm -d symlink
Это должно понять его, но так как это не может мы включать скрытый код, который был предназначен для другого случая, который больше не существует, но, оказывается, делает правильную вещь здесь.
При записи двоичных данных в файл, например, в случае с изображением, использование IO # put опасно, и его лучше избегать. Вы должны писать в двоичном режиме, что в основном неактуально для платформ, работающих только с LF, таких как UNIX или OS X, но обязательно для CRLF-платформ, таких как Windows. IO # Put также добавляет новую строку в конец файла, который является недопустимым.
Лучший подход - указать правильный флаг при вызове open:
File.open('shipping_label.gif', 'wb') do |f|
f.write(Base64.decode64(base_64_encoded_data))
end
Например, см. Комментарий на странице документации IO # open :
Если вам нужно записать его в изображение, используйте imagemagick через гем rmagick.