質問: OpenCPUサーバーに保存されている出力ファイルを別の関数への入力として使用するにはどうすればよいですか?
背景: openCPU内で、ページの読み込みに関する統計情報でWebページを更新するために使用できるhtmlを生成
しようとしknitr
ています。markdown
基本的なワークフローは次のとおりです。
- .Rmdファイルを生成し、ローカルに保存します。
- AJAXを使用するWebページにアクセスして、.Rmdファイルをサーバー上のOpenCPUインスタンスにアップロードします。
knit
openCPUを介して関数を使用し、関数をサーバーに保存されている*.mdファイルに変換します。markdownToHTML
サーバーに保存されているファイルの関数を使用して(への呼び出しを介して生成された適切なハッシュを渡すことによりknit
)、生成されたHTMLを含むAJAX応答を受信します。- 新しいHTMLでWebページを更新します。
現状では、このプロセスはステップ4まで機能していknit
ます。フォームリクエストPOSTを介して.Rmdファイルの受け渡しを呼び出すことができ、OpenCPUから次の応答を受け取ります。
{
"object" : "xa9eaea44e1",
"graphs" : [
"xf31dcfe7f3"
],
"files" : {
"figure" : "xfc55396fd8",
"test.md" : "x7821c69f79"
}
}
ここで、は関数"test.md"
を介して生成された出力ファイルです。knit
ここで、ハッシュを使用しようとします(この場合、次のパラメーターを使用してに"x7821c69f79"
POSTします。/R/pub/markdown/markdownToHTML/ascii
file /R/tmp/x7821c69f79/bin
HTTP 400
これにより、次のメッセージとともにエラーが返されます。
cannot open URL 'http://localhost/R/store/R/tmp/x7821c69f79/bin/rds'
ただし、にGETリクエストを行うと/R/tmp/x7821c69f79/bin
、の内容test.md
が返されます。したがって、への呼び出しでファイルが正しく保存されていることがわかりますknit
。
それで、ここで何が起こっているのですか?つまり、OpenCPUサーバーに保存されている出力ファイルを別の関数への入力として使用するにはどうすればよいですか?