1

まず、これを行うべきではない多くの正当な理由があることを理解していますが、興味深いことに、私の質問は次のとおりです。http 要求からサーバーを実行している R セッションに情報を永続化するための推奨される (または許容される) 方法はありますか?

例として、外部システムのトリガーは、基本情報 (更新時間) を含む更新時に http 要求を起動します。その(現在更新されている)時間変数をRで利用できるようにする最良の方法は何ですか?

以下の例のように、..\identityAPI を使用して単純な .csv ファイルを書き込んでみました。失敗ではないように見える結果が得られましたが、ファイルは作成されませんでした (デフォルトでは、それは良いことだと思います)。 (たとえば) カスタム パッケージを使用してインストールする必要がある場合でも、サーバー側 (つまり、\tmp オブジェクト ストア以外の場所)

どこかに文書化されている場合はお詫びしますが、管理者ガイドhttps://raw.github.com/jeroenooms/opencpu/opencpu-0.7/manual/document.pdfへのリンクをクリックすると、404 が返されました

ありがとう。

require(opencpu)
#Loading required package: opencpu
#Initiating OpenCPU server...
#OpenCPU started.
#[httpuv] http://localhost:8810/ocpu
#OpenCPU single-user server ready.

require(RCurl)

# no problem getting data
getForm("http://localhost:8810/ocpu/library/datasets/R/mtcars/print")

# ... returns data

# or querying with the identity function
postForm("http://localhost:8810/ocpu/library/base/R/identity/print",x="mtcars[1,]")
# [1] "          mpg cyl disp  hp drat   wt  qsec vs am gear carb\r\nMazda RX4  21   6  160 110  3.9 2.62 16.46  0  1    4    4\r\n"


# but if I try a 'write' function...
postForm("http://localhost:8810/ocpu/library/base/R/identity/print",x="write.csv(matrix(1:10,2),file='test2.csv')")
# I get a NULL return (but no failure)
#[1] "NULL\r\n"
#attr(,"Content-Type")
#charset 
#"text/plain"      "utf-8"
4

1 に答える 1

1

最新の PDF マニュアルを含むすべての情報は、OpenCPU.org で入手できます。具体的には、JavaScript ライブラリに関するページに stateに関する章があります。

あなたがする必要があることは、削除し/printて POST do a 機能を実行することです。結果は、応答のヘッダーにHTTP 201作成されたリソース (この場合はファイル) へのキーを含む になります。Location

> library(httr)
> req <- POST("http://localhost:1659/ocpu/library/base/R/matrix", body=list(data="1:10", nrow="2"))
> req
Response [http://localhost:1659/ocpu/library/base/R/matrix]
  Status: 201
  Content-type: text/plain; charset=utf-8
/ocpu/tmp/x0975a128/R/.val
/ocpu/tmp/x0975a128/stdout
/ocpu/tmp/x0975a128/source
/ocpu/tmp/x0975a128/console
/ocpu/tmp/x0975a128/info

> req$headers$location
[1] "/ocpu/tmp/x0975a128/"

> req$headers["x-ocpu-session"]
$`x-ocpu-session`
[1] "x0975a128"
于 2014-01-28T17:23:08.303 に答える