#r #shiny #dropbox #openxlsx
#r #блестящий #dropbox #openxlsx
Вопрос:
Я создал относительно сложное приложение Shiny для своей работы, которое отлично работает локально. Тем не менее, я пытаюсь разместить приложение так, чтобы пользователи, у которых не загружена R Studio, могли получить к нему доступ. Я не могу запустить приложение shinyapps.io . Похоже, это в основном связано с тем, что он не может найти файлы, расположенные в Dropbox. Приложение почти полностью основано на загрузке и записи файлов в Dropbox. Я попытался изменить пути к файлам и использовать rdrop2 для загрузки файлов, но это изменяет форматирование некоторых вещей, и, насколько я могу судить, было бы довольно сложно согласовать. Я в значительной степени начинающий программист, и мысль о необходимости реструктуризации всего приложения вызывает у меня некоторое беспокойство и, безусловно, потребует изрядных усилий. Кто-нибудь знает о более «простом» способе изменения файлов, расположенных в Dropbox, с помощью приложения shiny, размещенного на shinyapps.io , предпочтительно при сохранении возможности использования пакета «openxlsx»? Заранее большое вам спасибо.
Один из способов, который, как я думал, может сработать, но не сработал, заключался в том, чтобы указать путь к файлу Dropbox для конкретного пользователя, потому что любой, кто использует приложение, должен иметь доступ к Dropbox:
это.данные <- as.data.frame(read.xlsx (вставить(«C:Users «, Sys.info ()[[«пользователь»]], «Dropbox остальной путь к файлу», sep = «»)))
Комментарии:
1. Если это общедоступные (открытые) данные, вы можете рассмотреть возможность использования платформы открытых данных
2. @HubertL это может быть возможно. Вы имеете в виду перенос моих собственных данных на открытую платформу? Вы рекомендуете какие-либо конкретные платформы? Спасибо.
4. @HubertL Спасибо за ваши предложения. К сожалению, данные содержат имена и номера телефонов, поэтому я могу использовать это только в крайнем случае.
5. Если вы публично показываете на shinyapps.io …
Ответ №1:
Отказ от ответственности: я бы не рекомендовал полагаться на неподтвержденные URL-адреса Google для обеспечения конфиденциальности.
Измените ссылку на общий доступ, скопированную из DropBox, заменив dl=0
на dl=1
, чтобы загрузка начиналась, а не отображалась в пользовательском интерфейсе DropBox.
Затем вы можете download.file()
перейти в tempfile()
раздел перед read.xlsx()
этим:
library(shiny)
library(openxlsx)
library(DT)
ui <- fluidPage(
titlePanel("XL Read from dropbox"),
mainPanel( DTOutput("dt"))
)
server <- function(input, output) {
tmpfile <- tempfile(fileext='.xlsx')
download.file(url = "https://www.dropbox.com/s/1v0l...5u803a9hg/my_file.xlsx?dl=1", destfile = tmpfile , mode="wb")
output$dt <- renderDT(read.xlsx(outfile))
}
shinyApp(ui = ui, server = server)