【问题标题】:Error in drop_download: Conflict (HTTP 409)drop_download 中的错误:冲突 (HTTP 409)
【发布时间】:2021-07-13 11:28:56
【问题描述】:

我正在构建一个 Shiny,我希望用户从 Dropbox 帐户下载数据以在应用程序中使用。下载的数据是用户在之前的会话中输入的。

每当我尝试下载数据时,都会收到以下错误消息:

Downloading: 87 B     Warning: Error in drop_download: Conflict (HTTP 409).
156: <Anonymous>

我认为这不是 Dropbox 身份验证的问题,因为我可以成功地将文件上传到 Dropbox 文件夹,只是无法下载。

我最简单的可重现代码如下。对此的任何帮助将不胜感激!

#token <- drop_auth()
#saveRDS(token, "my-token.rds")
#drop_auth(rdstoken = "my-token.rds")

token <- readRDS("my-token.rds")
outputDir<-"Ed_app_save"

f_saveData <- function(data,name1) {
  
  data <- t(data)
  fileName <- sprintf(name1, as.integer(Sys.time()), digest::digest(data))
  filePath <- file.path(tempdir(), fileName)
  write.csv(data, filePath, row.names = FALSE, quote = TRUE)
  drop_upload(filePath, path = outputDir, dtoken = token)
  
}

f_loadData <- function(filename) {
  
  filesInfo <- subset(drop_dir(outputDir), name=filename)
  filePaths <- filesInfo$path_display
  data <- lapply(filePaths, drop_read_csv, stringsAsFactors = FALSE)
  data

  }

ui <- shinyUI(fluidPage(
  
  br(),
  actionButton("save_inputs", "Save inputs"),
  actionButton("load_inputs", "Load inputs"),
  br(),
  br(),
  div(uiOutput("intro_text"))
  
))

server <- shinyServer(function(input, output, session) { 
  
  
  observeEvent(input$save_inputs,{
    
    f_saveData(c(1,2,3),"name_of_file.csv")
    
  })
  
  
  downloaded_stuff<-eventReactive(input$load_inputs,{
    
    f_loadData("name_of_file.csv")
    
  })
  

  output$intro_text<-renderUI({
    
    tagList(div(
      ifelse(input$load_inputs==0,
         "Nothing loaded yet",
         downloaded_stuff())
      ))
  })
  
  
  
})

shinyApp(ui=ui,server=server)

【问题讨论】:

    标签: r shiny persistent-storage


    【解决方案1】:

    我设法解决了这个问题,发帖以防它帮助其他人。

    问题在于 loadData 函数 - filePaths 返回文件夹中的多个文件。以下设法解决了这个问题。

    f_loadData <- function(filename) {
      
      filesInfo <- subset(drop_dir(outputDir), name=filename)
      temp <- filesInfo$path_display
      filePaths <- temp[which(temp==paste0("/",outputDir,"/",filename))]
      data <- drop_read_csv(filePaths)
      data
     
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多