2017-10-12 16 views
0

S3バケットから動的に更新されたデータを取得するShiny Appを構築しようとしています。私は現在データを取得できますが、それ自体は更新されません。私はreactiveFileReaderexamplesのドキュメントを見てきましたが、それは分かりませんか?ヘルプは非常に感謝!AWS S3ファイルでreactiveFileReaderを使用してShinyアプリケーションを更新しようとしています

以下のコード:

getFile<-function(){ 
    my_bucket <- 'globalrss' 
    file <- paste0(as.character(getwd()),"/tmp") 
    r <- aws.s3::save_object("bodytype.csv", my_bucket, file=file) 
} 

shinyServer(function(input, output, session) { 
    fileReaderData <- reactiveFileReader(500, session, getFile(), readLines) 

    output$fileReaderText <- renderText({ 
    text <- fileReaderData() 
    length(text) <- 14 
    text[is.na(text)] <- "" 
    paste(text, collapse = '\n') 
    }) 
})` 

答えて

0

私はあなたがobserverにあなたのコードの一部を読んで、ファイルを配置する必要があるかもしれないと思います。おそらく、次のようなものでしょう:

shiny::shinyServer(function(input, output, session){ 

getFile<-function(){ 
    my_bucket <- 'globalrss' 
    file <- paste0(as.character(getwd()),"/tmp") 
    r <- aws.s3::save_object("bodytype.csv", my_bucket, file=file) 
} 

theFile<- getFile() # do this once, just so you have the data right away 

# Now setup an observer that surrounds invalidate later and the file read code 

observe({ 

shiny::invalidateLater(millis=30000, session=session) # run every 30 seconds 
theFile<<- getFile() # get the contents of the s3 bucket, replace data 
cat(file=stderr(), "updating data", "\n") # have this report actions to the console, can be removed later 

}) 



output$fileReaderText <- renderText({ 
    text <- theFile 
    length(text) <- 14 
    text[is.na(text)] <- "" 
    paste(text, collapse = '\n') 
    }) 


    }) 

これはあなたが望むものに近づくことを望みます。がんばろう。乾杯、

関連する問題