This vignette covers how to upload and download files to and from
Egnyte using egnyte. We’ll focus on the core eg_read() and
eg_write() functions, which handle raw file transfers. If
you’re working with data files specifically (CSVs, Excel files, etc.)
and want to load them directly into R data frames, see
vignette("reading-writing") instead.
Prerequisites
Before you can transfer files, you need to authenticate with Egnyte.
If you haven’t done that yet, see vignette("configuration")
or vignette("authorization") to get set up.
Downloading Files
The eg_read() function downloads a file from Egnyte to
your local machine.
Basic Usage
# Download a file to a specific location
eg_read("/Shared/Documents/report.pdf", destfile = "local_report.pdf")The first argument is the path to the file in Egnyte. Egnyte paths
typically start with /Shared/ for shared folders or
/Private/username/ for private folders.
Downloading to a Temporary File
If you don’t specify a destination, eg_read() creates a
temporary file and returns its path:
# Download to a temp file
temp_path <- eg_read("/Shared/Documents/report.pdf")
# The file is now at temp_path
print(temp_path)
#> [1] "/var/folders/.../file123.pdf"This is useful when you just need to work with a file briefly and don’t care where it’s stored.
Understanding Egnyte Paths
Egnyte paths can be a bit different from what you might expect:
- They always start with a forward slash
- Shared content is under
/Shared/ - Private folders are under
/Private/your-username/ - Paths are case-sensitive
Some examples:
# A file in a shared folder
eg_read("/Shared/Data/analysis/results.csv", destfile = "results.csv")
# A file in a nested folder
eg_read("/Shared/Projects/2024/Q1/report.docx", destfile = "report.docx")
# A file in your private folder
eg_read("/Private/jsmith/notes.txt", destfile = "notes.txt")If you’re not sure what the correct path is, the easiest approach is to navigate to the file in the Egnyte web interface and look at the URL. The path after your domain is the Egnyte path.
Uploading Files
The eg_write() function uploads a local file to
Egnyte.
Basic Usage
# Upload a file
eg_write("local_report.pdf", path = "/Shared/Documents/report.pdf")The first argument is the path to your local file, and
path is where you want it to end up in Egnyte.
Handling Existing Files
By default, eg_write() will fail if a file already
exists at the destination:
# This will error if the file already exists
eg_write("report.pdf", path = "/Shared/Documents/report.pdf")
#> Error: File already exists at /Shared/Documents/report.pdf
#> Use overwrite = TRUE to replace itIf you want to replace an existing file, set
overwrite = TRUE:
# Replace existing file
eg_write("report.pdf", path = "/Shared/Documents/report.pdf", overwrite = TRUE)This behavior is intentional - it prevents you from accidentally overwriting files. Get in the habit of being explicit about when you want to overwrite.
Creating Folders
When you upload a file, Egnyte will create any necessary parent folders automatically. You don’t need to create the folder structure beforehand:
# This works even if the "2024/Q1" folders don't exist yet
eg_write("report.pdf", path = "/Shared/Projects/2024/Q1/report.pdf")Working with Different File Types
eg_read() and eg_write() work with any file
type - they just transfer bytes. This makes them suitable for:
- Documents (PDF, Word, etc.)
- Images
- Archives (ZIP, tar, etc.)
- Any binary file
- Text files you want to process yourself
For data files where you want to load the contents directly into R as
a data frame, egnyte provides specialized functions like
eg_read_csv(), eg_read_excel(), etc. See
vignette("reading-writing") for those.
Listing Directory Contents
The eg_list() function returns the full paths of files
within an Egnyte directory.
Basic Usage
# List files in a directory
files <- eg_list("/Shared/Documents")
files
#> [1] "/Shared/Documents/report.pdf"
#> [2] "/Shared/Documents/notes.txt"
#> [3] "/Shared/Documents/data.csv"Recursive Listing
To list files in subdirectories as well, use
recursive = TRUE:
# List all files, including those in subdirectories
all_files <- eg_list("/Shared/Projects", recursive = TRUE)
all_files
#> [1] "/Shared/Projects/readme.txt"
#> [2] "/Shared/Projects/2024/Q1/report.pdf"
#> [3] "/Shared/Projects/2024/Q1/data.xlsx"
#> [4] "/Shared/Projects/2024/Q2/summary.docx"Filtering Results
Since eg_list() returns a character vector, you can
filter results with standard R functions:
Common Patterns
Downloading, Processing, and Re-uploading
A common workflow is to download a file, do something with it, and upload the result:
Error Handling
When things go wrong, egnyte tries to give you helpful error messages:
File not found:
Error: File not found at /Shared/Documents/missing.pdf
Check the path - remember it’s case-sensitive.
Access denied:
Error: Access denied to /Shared/Confidential/secret.pdf
You don’t have permission for this file or folder. Talk to your Egnyte admin.
File already exists:
Error: File already exists at /Shared/Documents/report.pdf
Use overwrite = TRUE to replace it
Either use a different path or set overwrite = TRUE.
Authentication error:
Error: Invalid API key or token expired
Re-run your authentication setup. See
vignette("authorization").
Next Steps
Now that you know how to transfer files:
- Learn to read data files directly into R with
vignette("reading-writing") - Review authentication options in
vignette("authorization")