curso-r / shinyhttr Goto Github PK
View Code? Open in Web Editor NEWGive httr::progress the ability to talk to shinyWidgets::progressBar.
License: Other
Give httr::progress the ability to talk to shinyWidgets::progressBar.
License: Other
I am trying to use shinyhttr in a shiny app. To test how this works, I ran the example app provided, but with a different URL due to firewall restrictions. This is my code
library(shiny)
library(shinyWidgets)
library(httr)
library(shinyhttr)
ui <- fluidPage(
sidebarLayout(
NULL,
mainPanel(
actionButton('download', 'Download 100MB file...'),
tags$p("see R console to compare both progress bars."),
progressBar(
id = "pbar",
value = 0,
title = "",
display_pct = TRUE
)
)
)
)
server <- function(input, output, session) {
observeEvent(input$download, {
GET(
url = "https://ftp.ncbi.nih.gov/1000genomes/ftp/1000G_2504_high_coverage/data/ERR3239276/NA06985.final.cram",
shinyhttr::progress(session, id = "pbar")
)
})
}
shinyApp(ui, server)
I see that the download starts fine and the progress bar in console gets updated, but the bar within shiny app doesn't. Am I missing something here?
I am aware of rdrop2 R package, but I am trying to use httr::GET() funciton to download data from my dropbox account and reflect the progress with shinyhttr and shynyWidgets. However, the below code does not work (neither progress, nor actual download and subsequent renderImage). I will appreciate any advises.
ui <-
tagList(
fluidPage(
sidebarLayout(sidebarPanel(
fileInput("upload", "Choose a file", accept = c('image/png', 'image/jpeg')),
actionButton('click', 'Start')
),
mainPanel(
imageOutput("output"),
progressBar(id = "pb", value = 0, title = "", display_pct = TRUE)
)
)
)
)
server <-
function(input, output, session) {
observeEvent(input$click, {
img = magick::image_read(input$upload$datapath)
fileName = sprintf("%s.jpg", gsub(":|-| ", "", Sys.time()))
img %>% saveImage(fileName)
output$output = renderImage({
tmpfile = httr::GET(url = paste0("https://www.dropbox.com/sh/somelettersandnumbers?dl=0/", fileName), shinyhttr::progress(session, id = "pb"))
list(src = tmpfile, contentType = "image/jpeg", style = paste0("width: 100%"))
}, deleteFile=TRUE)
})
}
shinyApp(ui = ui, server = server)
The traceback is as follows:
Listening on http://127.0.0.1:7074
File C:\Users\user\AppData\Local\Temp\tmpdir/20201210175243.jpg uploaded as /Folder/20201210175243.jpg successfully at 2020-12-10T13:52:46ZDownloading: 11 kB
Downloading: 11 kB
Downloading: 19 kB
Downloading: 19 kB
Downloading: 19 kB
Downloading: 19 kB
Downloading: 39 kB
Downloading: 39 kB
Downloading: 39 kB
Downloading: 39 kB
Downloading: 70 kB
Downloading: 70 kB
Downloading: 73 kB
Downloading: 73 kB
Downloading: 73 kB
Downloading: 73 kB
Downloading: 84 kB
Downloading: 84 kB
Downloading: 84 kB
Downloading: 84 kB Warning: Error in unlink: file name conversion problem -- name too long?
98: unlink
97: transform
96: func
94: f
93: Reduce
84: do
83: hybrid_chain
82: origRenderFunc
81: output$output
1: runApp
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.