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/cn.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灯, 水草

请输入看板名称,例如:BabyMother站内搜寻

TOP