This function uses the curl package or the system command curl
(whichever is available) to upload a image to https://imgur.com.
Usage
upload_imgur(
file,
key = env_option("xfun.upload_imgur.key"),
use_curl = loadable("curl"),
include_xml = FALSE
)Arguments
- file
Path to the image file to be uploaded.
- key
Client ID for Imgur. It can be set via either the global option
xfun.upload_imgur.keyor the environment variableR_XFUN_UPLOAD_IMGUR_KEY(seeenv_option()). If neither is set, this uses a client ID registered by Yihui Xie.- use_curl
Whether to use the R package curl to upload the image. If
FALSE, the system commandcurlwill be used.- include_xml
Whether to include the XML response in the returned value.
Value
A character string of the link to the image. If include_xml = TRUE,
this string carries an attribute named XML, which is the XML response
from Imgur (it will be parsed by xml2 if available). See Imgur API in
the references.
Details
One application is to upload local image files to Imgur when knitting a
document with knitr: you can set the knitr::opts_knit$set(upload.fun = xfun::upload_imgur, so the output document does not need local image files
any more, and it is ready to be published online.
Note
Please register your own Imgur application to get your client ID. You can certainly use mine, but this ID is in the public domain and it might reach Imgur's rate limit if too many people are using it in the same time period or someone is trying to upload too many images at once.
Examples
if (FALSE) { # \dontrun{
f = tempfile(fileext = ".png")
png(f)
plot(rnorm(100), main = R.version.string)
dev.off()
res = imgur_upload(f, include_xml = TRUE)
res # link to original URL of the image
xfun::attr2(res, "XML") # all information
if (interactive())
browseURL(res)
# to use your own key
options(xfun.upload_imgur.key = "your imgur key")
} # }