knitr::opts_chunk$set(echo = TRUE)
This overview introduces the webdav
R package, which provides an interface for managing files on WebDAV-compliant servers, enabling file operations such as uploading, downloading, copying, moving, and deleting resources.
webdav_create_request(base_url, username, password, verbose = FALSE)
This function creates a basic authenticated WebDAV request for the given resource path on a WebDAV server. It sets up authentication using the provided username and password and returns a request object.
Parameters:
base_url
: Base URL of the WebDAV server (e.g., https://drive.expresso.pe.gov.br
).username
: Username for authentication.password
: Password for authentication.verbose
: Whether to print debug information (default is FALSE
).Example:
# Example usage with a public WebDAV server. # Visit test_server$url link to view the results of the operation. library(magrittr) library(httr2) test_server <- "https://www.webdavserver.com/" %>% request() %>% req_retry(max_tries = 3, max_seconds = 4, backoff = ~ 1) %>% req_perform() %>% try(silent = TRUE) # Create a request if (class(test_server) != "try-error") req <- webdav_create_request(base_url = test_server$url, verbose = TRUE)
webdav_copy_file(base_url, from_path, to_path, username, password)
This function copies a file or directory from one path to another on a WebDAV server.
Parameters:
base_url
: Base URL of the WebDAV server.from_path
: The source file path to copy.to_path
: The destination path where the file will be copied.username
: Username for authentication.password
: Password for authentication.Example:
# Example usage with a public WebDAV server. # Visit test_server$url link to view the results of the operation. library(magrittr) library(httr2) test_server <- "https://www.webdavserver.com/" %>% request() %>% req_retry(max_tries = 3, max_seconds = 4, backoff = ~ 1) %>% req_perform() %>% try(silent = TRUE) # Copy a file from one path to another if (class(test_server) != "try-error") webdav_copy_file(base_url = test_server$url, from_path = "Project.pdf", to_path = "New_Project.pdf", verbose = TRUE)
webdav_create_directory(base_url, folder_path, username, password)
This function creates a new directory (or collection) on the WebDAV server using the MKCOL method.
Parameters:
base_url
: Base URL of the WebDAV server.folder_path
: Path to the directory to be created.username
: Username for authentication.password
: Password for authentication.Example:
# Example usage with a public WebDAV server. # Visit test_server$url link to view the results of the operation. library(magrittr) library(httr2) test_server <- "https://www.webdavserver.com/" %>% request() %>% req_retry(max_tries = 3, max_seconds = 4, backoff = ~ 1) %>% req_perform() %>% try(silent = TRUE) # Create a directory on the WebDAV server if (class(test_server) != "try-error") webdav_create_directory( base_url = test_server$url, folder_path = "Test_Folder", verbose = TRUE)
webdav_delete_resource( base_url, resource_path, username, password, verbose = FALSE )
This function deletes a file or directory from the WebDAV server using the DELETE method.
Parameters:
1. base_url
: Base URL of the WebDAV server.
1. resource_path
: The path to the file or directory to delete.
1. username
: Username for authentication.
1. password
: Password for authentication.
Example:
# Example usage with a public WebDAV server. # Visit test_server$url link to view the results of the operation. library(magrittr) library(httr2) test_server <- "https://www.webdavserver.com/" %>% request() %>% req_retry(max_tries = 3, max_seconds = 4, backoff = ~ 1) %>% req_perform() %>% try(silent = TRUE) # Delete a file or directory if (class(test_server) != "try-error") webdav_delete_resource(base_url = test_server$url, resource_path = "Notes.txt", verbose = TRUE)
webdav_list_files( base_url, folder_path, username, password, depth = 1, verbose = FALSE )
This function lists the files within a directory on the WebDAV server using the PROPFIND method.
Parameters:
base_url
: Base URL of the WebDAV server.folder_path
: Path to the folder to list files.username
: Username for authentication.password
: Password for authentication.depth
: Depth of the PROPFIND request (default is 1
).Example:
# Example usage with a public WebDAV server. # Visit test_server$url link to view the results of the operation. library(magrittr) library(httr2) test_server <- "https://www.webdavserver.com/" %>% request() %>% req_retry(max_tries = 3, max_seconds = 4, backoff = ~ 1) %>% req_perform() %>% try(silent = TRUE) # List files in a directory if (class(test_server) != "try-error") webdav_list_files( base_url = test_server$url, folder_path = "Sales/", verbose = TRUE)
webdav_upload_file( base_url, local_path, server_path, username, password, timeout = 300, verbose = FALSE )
This function uploads a local file to the WebDAV server.
Parameters:
base_url
: Base URL of the WebDAV server.local_path
: Local path to the file.server_path
: Path on the WebDAV server where the file will be uploaded.username
: Username for authentication.password
: Password for authentication.timeout
: Time limit for the upload operation (default is 300 seconds).Example:
# Example usage with a public WebDAV server. # Visit test_server$url link to view the results of the operation. library(magrittr) library(httr2) test_server <- "https://www.webdavserver.com/" %>% request() %>% req_retry(max_tries = 3, max_seconds = 4, backoff = ~ 1) %>% req_perform() %>% try(silent = TRUE) # Upload a file file_test <- tempfile(pattern = "teste_", fileext = ".txt") cat("Text file content", file = file_test) if (class(test_server) != "try-error") webdav_upload_file(base_url = test_server$url, local_path = file_test, verbose = TRUE)
webdav_download_file(base_url, file_path, destination_path, username, password, verbose)
This function downloads a file from the WebDAV server and saves it to a local directory. It validates the provided parameters, handles errors, and optionally prints detailed logs if requested.
Parameters:
base_url
: The base URL of the WebDAV server.file_path
: The path of the file on the WebDAV server to download (relative to the 'base_url').destination_path
: The local directory where the downloaded file will be saved. Defaults to the current directory.username
: The username for WebDAV authentication. Defaults to the "WEBDAV_USERNAME" environment variable.password
: The password for WebDAV authentication. Defaults to the "WEBDAV_PASSWORD" environment variable.verbose
: Logical. If TRUE, prints detailed messages during the download process.Example:
# Example usage with a public WebDAV server. library(magrittr) library(httr2) test_server <- "https://www.webdavserver.com/" %>% request() %>% req_retry(max_tries = 3, max_seconds = 4, backoff = ~ 1) %>% req_perform() # Download a file from the WebDAV server if (class(test_server) != "try-error") webdav_download_file(base_url = test_server$url, file_path = "Project.pdf", destination_path = tempdir(), verbose = TRUE) # Visit test_server$url to view the results of the operation.
The webdav
R package provides a interface for managing files and directories on WebDAV-enabled servers. With basic file management (uploading, downloading, deleting, copying), directory management, and resource locking, the package simplifies interactions with platforms like OwnCloud, NextCloud, and other WebDAV-compliant systems.
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.