I am trying to figure out how I can go about deploying quite a few documents onto Rtudio Connect. I am looking for a solution that does not require too much manual work. I want to be able to create a section on Rstudio Connect for these documents then I want to create a solution that will allow people to be able to upload similar documents to that area (The people who will be deploying these documents in future have no experience with R). These documents that I am referring to are static PDF files.
I'm not sure if you can assist me?
Then you can deploy this programmatically using connectapi. This uses the RStudio Connect Server API, which is documented here: Posit Connect Documentation Version 2024.02.0 - . There is a way to do this with rsconnect too, I believe, but I am less familiar with it:
library(connectapi)
client <- connect()
bnd <- bundle_dir(tmpdir)
myapp <- deploy(client, bnd, name = "uniquename", title = "My Title")
poll_task(myapp)
browse_dashboard(myapp)
Lastly, to enable other users to do this type of thing, you could build a simple Shiny app that does this type of deployment for you. You would just inject the API key necessary to do the deployment into the Shiny application's "Environment Variables"
The one piece I have left off here is programmatically setting the tag. There is not a great way to do this today, unfortunately. There is an experimental myapp$tag_set() function that uses the tag ID, but that is not super usable. I will have to do some thinking on that front and whether there is a better approach to doing so programmatically
I hope that is helpful as a start though! I'm curious what your thoughts are on whether this will be workable in your context or not.
Sorry for the delayed response. I found another way to upload the pdf files onto Rstudio Connect
file <- list.files("directory", full.names = T) #directory with all files using option full.names = T
for (i in file){
rsconnect::deployDoc(doc=i,
account = "admin number",
server = "server")
}
I have however come across a small problem, after I upload all the files onto Rstudio the format of the file names changes, eg:. "Tennis Score Totals - May 2020.pdf " will appear as "tennis_score_total-_may_2020.pdf" is there a reason for this? How do I ensure that the format of the file names does not change after I upload onto Rstudio?
That file name changing is "sanitization" / "cleaning" of the filename to remove "bad" characters that are not presented well by browsers. That is something that the rsconnect package does, so there is not really a way out of that in the pattern you are using.
We have since added a helper to the connectapi package that could be helpful here,
I have built a shiny app that will allow users to upload a pdf file then upload that file to Rstudio Connect. I tested the app and it works, I am only struggling with the tagging. Is it possible to create code that will get the uploaded file tagged in the correct area? I have already created a tag scheme on Rstudio Connect. Here is my code for the shiny app thus far:
ui <- fluidPage(
titlePanel("ESD Flash Report Upload"),
fluidRow(
h4("This is an application that allows you to upload your flash report onto Rstudio Connect. Please upload only PDF files and provide the name of the flash report as well as the publication date (eg: Mining Production - January 2020)"),
fileInput(inputId = "file", label = "Upload flash report", multiple = FALSE, placeholder = "No file selected", accept = "pdf"),
textInput("pubname", "Enter publication name", value = ""),
textInput("pubdate", "Enter publication date", value = ""),
actionButton(inputId = "upload", label = "Upload file")
))
server <- function(input, output){
observeEvent(input$upload, {
require(input$file)
file.copy(from = input$file$datapath,
to = paste0(tempdir(),
input$pubname,
" - ",
input$pubdate,
".pdf"))
rsconnect::deployDoc(doc = paste0(tempdir(),
input$pubname,
" - ",
input$pubdate,
".pdf"),
account = "P",
server = "srv")
}
)
}
shinyApp(ui = ui, server = server)