% Generated by roxygen2: do not edit by hand % Please edit documentation in R/filesystem.R \docType{class} \name{FileSystem} \alias{FileSystem} \alias{LocalFileSystem} \alias{S3FileSystem} \alias{SubTreeFileSystem} \title{FileSystem classes} \description{ \code{FileSystem} is an abstract file system API, \code{LocalFileSystem} is an implementation accessing files on the local machine. \code{SubTreeFileSystem} is an implementation that delegates to another implementation after prepending a fixed base path } \section{Factory}{ \code{LocalFileSystem$create()} returns the object and takes no arguments. \code{SubTreeFileSystem$create()} takes the following arguments: \itemize{ \item \code{base_path}, a string path \item \code{base_fs}, a \code{FileSystem} object } \code{S3FileSystem$create()} optionally takes arguments: \itemize{ \item \code{anonymous}: logical, default \code{FALSE}. If true, will not attempt to look up credentials using standard AWS configuration methods. \item \code{access_key}, \code{secret_key}: authentication credentials. If one is provided, the other must be as well. If both are provided, they will override any AWS configuration set at the environment level. \item \code{session_token}: optional string for authentication along with \code{access_key} and \code{secret_key} \item \code{role_arn}: string AWS ARN of an AccessRole. If provided instead of \code{access_key} and \code{secret_key}, temporary credentials will be fetched by assuming this role. \item \code{session_name}: optional string identifier for the assumed role session. \item \code{external_id}: optional unique string identifier that might be required when you assume a role in another account. \item \code{load_frequency}: integer, frequency (in seconds) with which temporary credentials from an assumed role session will be refreshed. Default is 900 (i.e. 15 minutes) \item \code{region}: AWS region to connect to. If omitted, the AWS library will provide a sensible default based on client configuration, falling back to "us-east-1" if no other alternatives are found. \item \code{endpoint_override}: If non-empty, override region with a connect string such as "localhost:9000". This is useful for connecting to file systems that emulate S3. \item \code{scheme}: S3 connection transport (default "https") \item \code{background_writes}: logical, whether \code{OutputStream} writes will be issued in the background, without blocking (default \code{TRUE}) } } \section{Methods}{ \itemize{ \item \verb{$GetFileInfo(x)}: \code{x} may be a \link{FileSelector} or a character vector of paths. Returns a list of \link{FileInfo} \item \verb{$CreateDir(path, recursive = TRUE)}: Create a directory and subdirectories. \item \verb{$DeleteDir(path)}: Delete a directory and its contents, recursively. \item \verb{$DeleteDirContents(path)}: Delete a directory's contents, recursively. Like \verb{$DeleteDir()}, but doesn't delete the directory itself. Passing an empty path (\code{""}) will wipe the entire filesystem tree. \item \verb{$DeleteFile(path)} : Delete a file. \item \verb{$DeleteFiles(paths)} : Delete many files. The default implementation issues individual delete operations in sequence. \item \verb{$Move(src, dest)}: Move / rename a file or directory. If the destination exists: if it is a non-empty directory, an error is returned otherwise, if it has the same type as the source, it is replaced otherwise, behavior is unspecified (implementation-dependent). \item \verb{$CopyFile(src, dest)}: Copy a file. If the destination exists and is a directory, an error is returned. Otherwise, it is replaced. \item \verb{$OpenInputStream(path)}: Open an \link[=InputStream]{input stream} for sequential reading. \item \verb{$OpenInputFile(path)}: Open an \link[=RandomAccessFile]{input file} for random access reading. \item \verb{$OpenOutputStream(path)}: Open an \link[=OutputStream]{output stream} for sequential writing. \item \verb{$OpenAppendStream(path)}: Open an \link[=OutputStream]{output stream} for appending. } } \section{Active bindings}{ \itemize{ \item \verb{$type_name}: string filesystem type name, such as "local", "s3", etc. \item \verb{$region}: string AWS region, for \code{S3FileSystem} and \code{SubTreeFileSystem} containing a \code{S3FileSystem} \item \verb{$base_fs}: for \code{SubTreeFileSystem}, the \code{FileSystem} it contains \item \verb{$base_path}: for \code{SubTreeFileSystem}, the path in \verb{$base_fs} which is considered root in this \code{SubTreeFileSystem}. } }