Neuroware
@Neuroware
Программист в свободное от работы время

Как понять этот странный скрипт?

В "readme" к приложению дано "описание" как можно использовать утилиту в таком виде:
Вот типичный пример использования — проверить 20 секунд из mp3 файла, начиная с 10-й секунды:
echoprint-codegen ./recorded.mp3 10 20 | \
curl -F "query=@-" developer.echonest.com/api/v4/song/identify?api_ke...
{"response": {"status": {"version": "4.2", "code": 0, "message": "Success"},
"songs": [{"tag": 0, "score": 66, "title": "Creep", "message": "OK (match type 6)",
"artist_id": "ARH6W4X1187B99274F", "artist_name": "Radiohead", "id": "SOPQLBY12A6310E992"}]}}

с консолью возиться я не любитель, поэтому не могу понять синтаксиса этой "инструкции", насколько я понял "| \" означает чтото вроде "передать все что вернула команда слева команде справа" или как то так, но не могу понять где в этой команде это вставляется
curl -F "query=@-" developer.echonest.com/api/v4/song/identify?api_ke...
чисто теоретически вместо "@-", но такой бредовый синтаксис "с цветочками" мне кажется не корректный, прошу помочь разобраться и если возможно подсказать чем это можно заменить в C#
  • Вопрос задан
  • 2813 просмотров
Решения вопроса 1
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
echoprint.me/codegen что то генерирует, что передается в curl
-F отправка формы
@- @ означает что данные отправляютcя как приложенный файл, а минус что отправляемые данные берутся из STDIN (в данном случае то что сгенерировалось после echoprint-codegen ./recorded.mp3 10 20), подробнее можно почитать man curl
-F, --form
(HTTP) This lets curl emulate a filled-in form in which a user
has pressed the submit button. This causes curl to POST data
using the Content-Type multipart/form-data according to RFC
2388. This enables uploading of binary files etc. To force the
'content' part to be a file, prefix the file name with an @
sign. To just get the content part from a file, prefix the file
name with the symbol <. The difference between @ and < is then
that @ makes a file get attached in the post as a file upload,
while the < makes a text field and just get the contents for
that text field from a file.

Example, to send your password file to the server, where 'pass‐
word' is the name of the form-field to which /etc/passwd will be
the input:

curl -F password=@/etc/passwd www.mypasswords.com

To read content from stdin instead of a file, use - as the file‐
name. This goes for both @ and < constructs.


Вот собственно и все.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы