Как рассчитать длину содержимого загрузки файла в рубине? - PullRequest
2 голосов
/ 23 мая 2010

Мне нужно указать длину содержимого файла изображения / png, опубликованного при загрузке в веб-сервис.

Но как рассчитать длину содержимого для включения в заголовок?

Спасибо.

Я отправляю его, используя rest-client.

Веб-сервис для загрузки Postful: документация неясна: http://www.postful.com/developer/guide#uploading_attachments

Поскольку я пишу полезную нагрузку и заголовки, похоже, мне нужно ввести это значение.

Я также смотрю на почтовые методы, в которых говорится, что длина контента - это пользовательский ввод:

http://postalmethods.com/method/2009-02-26/UploadFile

Сами файлы имеют формат .PNG.Я собираюсь прикрепить их к модели с помощью Paperclip, поэтому у меня будет путь к файлу из этого файла.

Файл, длина которого мне нужна для публикации, хранится как вложение с использованием paperclip, так что генерируется конкретный кодпроблемы это:

File.size(@postalcard.postalimage.url)

Ответы [ 2 ]

1 голос
/ 23 мая 2010

Что ж, вы можете использовать File.size(filepath), но вряд ли вам понадобится - большинство библиотек для выполнения HTTP-запросов должны делать это автоматически - какую библиотеку вы используете? (Или что это за веб-сервис?)

1 голос
/ 23 мая 2010

Ну, вы знаете, как вы читаете и публикуете данные, предположительно - так что вы знаете, сколько данных вы отправляете. Это длина контента. Если вы просто отправляете его напрямую в двоичном виде как тело поста, это просто длина файла. Если вы кодируете его в base-64, тогда длина контента будет ((длина файла + 2) / 3) * 4. Если это происходит в конверте SOAP и т. Д., Вам необходимо это учитывать. 1001 *

Один из способов сделать это в сложных ситуациях - сначала создать полное тело сообщения в памяти, задать длину содержимого, а затем просто скопировать из памяти непосредственно в тело сообщения.

...