R_Language 板


LINE

[問題類型]: 程式諮詢(我想用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 file@filename -H .. -d '{"argument1":...}'.. (不能同時-F, ... -d 所以問題1 是,我該如何同時pass file and other arguments 在curl中? 另外在server端,我叫用自己寫的package,也要相對應來做處理傳遞過來的檔案, 但我不太確定該怎麼寫這段,怎麼樣讀取一個由curl 傳過來的檔案? 找不太到網路上有類似這樣實作的例子,懷疑自己是不是根本想錯方向~ 目前覺得可能是這樣做? (如底下## #======== in my Package in server, called by users through Opencpu myFunc <- function (file, data=c(), argument2, argument3,...) { if (length(data)>0) { ##照舊方式 data放在argument傳遞,這部分沒問題 DT <- data.table(matrix(data, ncol=2,byrow=byrow)) } else { #### data如果放在file,所以問題2是: Where (and How) I can fetch the file #### I received if curl successfully send a file? like the following code? #filedt <- httr::POST( # url = "http://myHost/ocpu/library/myPackage/R/myFunc", # body = upload_file( # path = path.expand(file), # type = 'text/csv'), # verbose() #) #DT <- fread(##filedt) } ## then handle DT with other arguments ### ... return(output) } 想請問有沒有類似經驗可以建議我怎麼處理這樣的request 或者別種實現方法、範例皆可~~ 謝謝 [軟體熟悉度]: 請把以下不需要的部份刪除 使用者(已經有用R 做過不少作品) [環境敘述]: 請提供 sessionInfo() 的輸出結果, R version 3.3.2 (2016-10-31) Platform: x86_64-pc-linux-gnu (64-bit) Running under: Ubuntu 14.04.5 LTS locale: [1] LC_CTYPE=en_PH.UTF-8 LC_NUMERIC=C [3] LC_TIME=zh_TW.UTF-8 LC_COLLATE=en_PH.UTF-8 [5] LC_MONETARY=zh_TW.UTF-8 LC_MESSAGES=en_PH.UTF-8 [7] LC_PAPER=zh_TW.UTF-8 LC_NAME=C [9] LC_ADDRESS=C LC_TELEPHONE=C [11] LC_MEASUREMENT=zh_TW.UTF-8 LC_IDENTIFICATION=C attached base packages: [1] stats graphics grDevices utils datasets methods base [關鍵字]: API, opencpu, curl --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.225.70.235
※ 文章網址: https://webptt.com/m.aspx?n=bbs/R_Language/M.1481037620.A.1D5.html
1F:推 Wush978: 不知道能不能同時用HTTP Post + Get... 12/06 23:31
2F:→ cywhale: curl -d,-F應都是POST?https://www.opencpu.org/api.html 12/06 23:54
3F:推 obarisk: 看你的web server吐給你什麼file 12/07 00:11
4F:→ obarisk: opencpu有綁apache? 12/07 00:12
5F:→ cywhale: 有跑apache, 如只傳 curl -F "[email protected]"先不管-d 12/07 00:22
6F:→ cywhale: 可以看到回傳/ocpu/tmp/x04b063e194/files/tmp.txt 12/07 00:23
7F:→ cywhale: 但這種temporary dir每次路徑名都換?我在程式中要怎麼抓 12/07 00:25
8F:→ cywhale: 另外就是沒有-d arguemnts..我也沒法繼續處理這個file.. 12/07 00:26
10F:→ obarisk: post-parameter 12/07 06:50
11F:→ obarisk: 暫存檔都是生成的,要看opencpu怎麼接apache 12/07 06:51
12F:推 obarisk: https://www.opencpu.org/api.html 12/07 07:01
13F:→ obarisk: 手冊看起來是接一個named file 12/07 07:01
14F:→ obarisk: 所以你post要送file=upload_file 12/07 07:02
15F:→ obarisk: opencpu會幫你把http request處理掉 12/07 07:02
16F:→ cywhale: 感謝提示,還在try看起來檔案有傳但其他參數沒有真的傳進 12/07 10:26
17F:→ cywhale: 如o大連結用-F "file=@localfile" -F "argument1=..;.." 12/07 10:35
18F:→ cywhale: 前面的file會被opencpu處理,但後面的參數沒有進到程式中 12/07 10:37
19F:→ Wush978: GET的意思是在網址後面加上?arg1=value1&arg2=value2 12/07 10:48
20F:→ Wush978: 這樣POST的部分放檔案,GET的部分放參數 12/07 10:48
21F:→ Wush978: 只是我不清楚OpenCPU能不能處理這樣的request,可以的話 12/07 10:48
22F:→ Wush978: 就能是一種workaround 12/07 10:48
23F:→ cywhale: 謝謝Wush大我原先誤解意思,但我這樣寫opencpu會導到別處 12/07 11:42
24F:→ cywhale: 不過我剛試出來了 -F 要一個個寫,不可以用;隔開參數!! 12/07 11:42
25F:→ cywhale: 感謝諸位回應幫忙的大大們! R裏頭還是寫 fread(file)即可 12/07 11:43
26F:→ cywhale: 然後 curl -F "file=@myfile" -F "arg1=.." -F "arg2=.." 12/07 11:44
27F:→ cywhale: 然後curl url寫../R/myFunc/json 就可以導出output json 12/07 11:48
28F:→ cywhale: It save my day!! Really thanks~~ ^^ 12/07 11:49
29F:推 obarisk: 分享一下架opencpu的心得啊,我也想直接用r串api 12/07 19:32
30F:→ cywhale: 可以,我再找時間寫,其實很好用 opencpu實在很讚~~ 12/07 19:45
31F:→ celestialgod: 可以看看我的部落格XD:https://goo.gl/zY0As6 12/07 19:48
32F:→ celestialgod: 至於安裝opencpu,按照官網裝一下就好了 12/07 19:49
33F:→ celestialgod: sudo yum install opencpu 12/07 19:49
34F:→ celestialgod: 上面是Fedora一鍵就可以安裝 12/07 19:50
35F:→ celestialgod: 我在centos上裝,就參考這篇https://goo.gl/on1jmT 12/07 19:51
36F:→ cywhale: 太好了,裝在ubuntu很簡單,但centos6.5我裝不起來,再來 12/07 20:28
37F:→ cywhale: 照你的步驟試看看,謝謝分享~~ 12/07 20:28
38F:→ cywhale: 資訊很豐富哩,看來可以偷學,也可以偷懶不用寫了XD 12/07 20:30







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:BuyTogether站內搜尋

TOP