Ruby Oauth File upload / Multipart POST запрос - PullRequest
0 голосов
/ 29 марта 2010

Я смотрю на это уже пару дней и не нашел решение. Есть ли способ загрузить файл с помощью OAuth-Ruby?

Я работаю с системой REST, которая защищает их ресурс с помощью oauth. Я создаю тестовый инструмент, используя ruby ​​и oauth-ruby, чтобы упростить загрузку тестовых данных в систему. Но я не могу обойтись, чтобы загрузить файлы на ресурсы.

Когда я отправляю обычный запрос, все работает, но добавление файла в виде параметр делает подпись недействительной.

Пример:

 @access_token.post("http://.../imageresource", {:name=>"awesome cat"}, {'Content-Type' => 'multipart/form-data'})

работает, но дает мне:

 <error>
    <message>images/POST: Request has no file data</message>
 </error>

Я не уверен, как добавить файл к сообщению.

Есть мысли по этому поводу?

Спасибо,

Ответы [ 2 ]

1 голос
/ 09 января 2013

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

На самом деле есть вопрос ruby-how-to-post-a-file-via-http-as-multipart-form-data , который имеет пример.

0 голосов
/ 23 ноября 2010

Это невозможно сделать с самоцветом oauth или чрезвычайно сложно. В любом случае, я не знаю, как это сделать, используя этот драгоценный камень.

Это можно сделать тривиально с моим signet драгоценным камнем, если у вас есть удобный способ создать допустимое тело составного запроса. Создание такого тела запроса выходит за рамки гема OAuth, но должно быть довольно легко сделать с большинством клиентов HTTP. Затем гем httpadapter может преобразовать запрос в форму, которую может подписать signet. Дайте мне знать, если ваш предпочитаемый HTTP-клиент не поддерживается httpadapter, и я немедленно разрешу его.

См. Второй пример метода fetch_protected_resource, чтобы получить представление о том, как это можно сделать.

...