无法将大型的.RDS文件部署到RStudio中的Shinyapp.io

时间:2019-03-17 20:52:47

标签: r shiny rstudio shinyapps rsconnect

我正在尝试从RStudio部署闪亮的应用程序。与“ ui.r”和“ server.r”文件一起,我有3个.RDS文件(50kb,15mb和18mb),我从server.r文件中读取,它们在本地运行良好。当我开始上传时,它失败并显示以下错误:

Preparing to deploy application...DONE 
Uploading bundle for application: 794264...
Error in force(code) : Could not upload file. 
Calls: <Anonymous> -> withStatus -> force
Execution halted

我尝试选择50kb和15mb的文件,但效果很好。当我自己选择18 mb时,它可以工作,但是当我同时选择所有三个时,它似乎不起作用。我将文件大小增加到了大约。 500 mb(很有可能缩小了捆绑包的大小),方法如下:

options(rsconnect.max.bundle.files = 500000000)

在我阅读时,其值以字节为单位。

那是徒劳的。

我使用控制台进行了部署:

deployApp(appDir="Documents/GitHub/DataScience_JH_Coursera_Assignments/10.Capstone/shinyapp/PredictionText/",logLevel="verbose",lint=TRUE)

无济于事,但我设法将问题线归零,并且得到了以下日志:

----- Deployment error -----
Error in force(code) : Could not upload file.

----- Error stack trace -----
4: stop("Could not upload file.")
3: force(code)
2: withStatus(paste0("Uploading bundle for ", assetTypeName, ": ", 
       application$id), {
       bundlePath <- bundleApp(target$appName, appDir, appFiles, 
           appPrimaryDoc, assetTypeName, contentCategory, verbose)
       if (isShinyapps(accountDetails)) {
           bundleSize <- file.info(bundlePath)$size
           checkSum <- md5sum(bundlePath)
           bundle <- client$createBundle(application$id, "application/x-tar", 
               bundleSize, checkSum)
           if (verbose) 
               timestampedLog("Starting upload now")
           if (!uploadBundle(bundle, bundleSize, bundlePath)) {
               stop("Could not upload file.")
           }
           if (verbose) 
               timestampedLog("Upload complete")
           response <- client$updateBundleStatus(bundle$id, status = "ready")
           bundle <- client$getBundle(bundle$id)
       }
       else {
           bundle <- client$uploadApplication(application$id, bundlePath)
       }
   })
1: deployApp(appDir = "Documents/GitHub/DataScience_JH_Coursera_Assignments/10.Capstone/shinyapp/PredictionText/", 
       logLevel = "verbose", lint = TRUE)

所以我在这里失败了,

if (!uploadBundle(bundle, bundleSize, bundlePath)) {

仅供参考,如果我在获得以下内容时进行了正确的转换,则我的捆绑包大小设置为大约3gb

getOption("rsconnect.max.bundle.size")
[1] 3145728000

我已经坚持了5天。我阅读了所有可以阅读的论坛,尝试分别上传文件,只是发现Shiny / rsconnect似乎在此之前删除了该实例,因此无法一一上传文件。我什至尝试弄乱.dcf rsconnect文件,也没有。任何帮助/见解将不胜感激。

1 个答案:

答案 0 :(得分:0)

我设法解决了这个问题,因为事实证明,我将* .RDS文件与server.r和ui.r文件放在同一文件夹中。我只需要在* .r文件所在的文件夹中创建一个名为“数据”的文件夹,并将* .RDS文件转储到那里,然后进行上传即可。

日志更清晰了。

“刷新缓存”,导航到rsconnect和所有后续文件夹,直到到达[appname] .dcf文件并删除该文件,也没有帮助,但确实有所帮助。