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.
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)
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)
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)
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)
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)
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.