[問題] 利用opencpu API傳遞檔案與參數給Rpackage

作者: cywhale (cywhale)   2016-12-06 23:20:17
[問題類型]:
程式諮詢(我想用R 做某件事情,但是我不知道要怎麼用R 寫出來)
我寫了一個工作上用的小package,利用opencpu可以實現API傳遞參數叫用函數運算
(opencpu 可參考作者github: https://github.com/jeroenooms/opencpu
Send requests through curl 大致像
curl http://myHost/ocpu/library/myPackage/R/myFunc/json -H "Content-Type:
application/json" -d '{"argument1":"...","argument3":"...",..}' -o output.json
原本若要傳遞像vector這種data,就以json format一樣放在argument傳就好了,
但如果我允許user 把data 放在 file.csv中,我發現我沒辦法在同一個request中放進
curl -F [email protected]/*
作者: Wush978 (拒看低質媒體)   2016-12-06 23:31:00
不知道能不能同時用HTTP Post + Get...
作者: cywhale (cywhale)   2016-12-06 23:54:00
curl -d,-F應都是POST?https://www.opencpu.org/api.html
作者: obarisk (OSWALT)   2016-12-07 00:11:00
看你的web server吐給你什麼fileopencpu有綁apache?
作者: cywhale (cywhale)   2016-12-07 00:22:00
有跑apache, 如只傳 curl -F "[email protected]"先不管-d可以看到回傳/ocpu/tmp/x04b063e194/files/tmp.txt但這種temporary dir每次路徑名都換?我在程式中要怎麼抓另外就是沒有-d arguemnts..我也沒法繼續處理這個file..
作者: obarisk (OSWALT)   2016-12-07 06:50:00
http://superuser.com/questions/442969/curl-file-with-post-parameter暫存檔都是生成的,要看opencpu怎麼接apachehttps://www.opencpu.org/api.html手冊看起來是接一個named file所以你post要送file=upload_fileopencpu會幫你把http request處理掉
作者: cywhale (cywhale)   2016-12-07 10:26:00
感謝提示,還在try看起來檔案有傳但其他參數沒有真的傳進如o大連結用-F "[email protected]" -F "argument1=..;.."前面的file會被opencpu處理,但後面的參數沒有進到程式中
作者: Wush978 (拒看低質媒體)   2016-12-07 10:48:00
GET的意思是在網址後面加上?arg1=value1&arg2=value2這樣POST的部分放檔案,GET的部分放參數只是我不清楚OpenCPU能不能處理這樣的request,可以的話就能是一種workaround
作者: cywhale (cywhale)   2016-12-07 11:42:00
謝謝Wush大我原先誤解意思,但我這樣寫opencpu會導到別處不過我剛試出來了 -F 要一個個寫,不可以用;隔開參數!!感謝諸位回應幫忙的大大們! R裏頭還是寫 fread(file)即可然後 curl -F "[email protected]" -F "arg1=.." -F "arg2=.."然後curl url寫../R/myFunc/json 就可以導出output jsonIt save my day!! Really thanks~~ ^^
作者: obarisk (OSWALT)   2016-12-07 19:32:00
分享一下架opencpu的心得啊,我也想直接用r串api
作者: cywhale (cywhale)   2016-12-07 19:45:00
可以,我再找時間寫,其實很好用 opencpu實在很讚~~
作者: celestialgod (天)   2016-12-07 19:48:00
可以看看我的部落格XD:https://goo.gl/zY0As6至於安裝opencpu,按照官網裝一下就好了sudo yum install opencpu上面是Fedora一鍵就可以安裝我在centos上裝,就參考這篇https://goo.gl/on1jmT
作者: cywhale (cywhale)   2016-12-07 20:28:00
太好了,裝在ubuntu很簡單,但centos6.5我裝不起來,再來照你的步驟試看看,謝謝分享~~資訊很豐富哩,看來可以偷學,也可以偷懶不用寫了XD
繼續閱讀

Links booklink

Contact Us: admin [ a t ] ucptt.com