java.io.Closeable, java.lang.AutoCloseable, Configurable, BulkDeleteSource, PathCapabilities, DelegationTokenIssuerChecksumFileSystem@Public @Stable public class FilterFileSystem extends FileSystem
FilterFileSystem contains
some other file system, which it uses as
its basic file system, possibly transforming
the data along the way or providing additional
functionality. The class FilterFileSystem
itself simply overrides all methods of
FileSystem with versions that
pass all requests to the contained file
system. Subclasses of FilterFileSystem
may further override some of these methods
and may also provide additional methods
and fields.FileSystem.DirectoryEntries, FileSystem.DirListingIterator<T extends FileStatus>, FileSystem.Statistics| Modifier and Type | Field | Description |
|---|---|---|
protected FileSystem |
fs |
|
protected java.lang.String |
swapScheme |
DEFAULT_FS, FS_DEFAULT_NAME_KEY, LOG, SHUTDOWN_HOOK_PRIORITY, statistics, TRASH_PREFIX, USER_HOME_PREFIXTOKEN_LOG| Constructor | Description |
|---|---|
FilterFileSystem() |
|
FilterFileSystem(FileSystem fs) |
| Modifier and Type | Method | Description |
|---|---|---|
void |
access(Path path,
FsAction mode) |
Checks if the user can access a path.
|
FSDataOutputStream |
append(Path f,
int bufferSize,
Progressable progress) |
Append to an existing file (optional operation).
|
FSDataOutputStreamBuilder |
appendFile(Path path) |
Create a Builder to append a file.
|
protected java.net.URI |
canonicalizeUri(java.net.URI uri) |
Canonicalize the given URI.
|
protected void |
checkPath(Path path) |
Check that a Path belongs to this FileSystem.
|
void |
close() |
Close this FileSystem instance.
|
void |
completeLocalOutput(Path fsOutputFile,
Path tmpLocalFile) |
Called when we're all done writing to the target.
|
void |
concat(Path f,
Path[] psrcs) |
Concat existing files together.
|
void |
copyFromLocalFile(boolean delSrc,
boolean overwrite,
Path[] srcs,
Path dst) |
The src files are on the local disk.
|
void |
copyFromLocalFile(boolean delSrc,
boolean overwrite,
Path src,
Path dst) |
The src file is on the local disk.
|
void |
copyFromLocalFile(boolean delSrc,
Path src,
Path dst) |
The src file is on the local disk.
|
void |
copyToLocalFile(boolean delSrc,
Path src,
Path dst) |
The src file is under FS, and the dst is on the local disk.
|
FSDataOutputStream |
create(Path f,
FsPermission permission,
boolean overwrite,
int bufferSize,
short replication,
long blockSize,
Progressable progress) |
Create an FSDataOutputStream at the indicated Path with write-progress
reporting.
|
FSDataOutputStream |
create(Path f,
FsPermission permission,
java.util.EnumSet<CreateFlag> flags,
int bufferSize,
short replication,
long blockSize,
Progressable progress,
Options.ChecksumOpt checksumOpt) |
Create an FSDataOutputStream at the indicated Path with a custom
checksum option.
|
FSDataOutputStreamBuilder |
createFile(Path path) |
Create a new FSDataOutputStreamBuilder for the file with path.
|
FSDataOutputStream |
createNonRecursive(Path f,
FsPermission permission,
java.util.EnumSet<CreateFlag> flags,
int bufferSize,
short replication,
long blockSize,
Progressable progress) |
Opens an FSDataOutputStream at the indicated Path with write-progress
reporting.
|
protected PathHandle |
createPathHandle(FileStatus stat,
Options.HandleOpt... opts) |
Hook to implement support for
PathHandle operations. |
Path |
createSnapshot(Path path,
java.lang.String snapshotName) |
Create a snapshot.
|
void |
createSymlink(Path target,
Path link,
boolean createParent) |
|
boolean |
delete(Path f,
boolean recursive) |
Delete a file
|
void |
deleteSnapshot(Path path,
java.lang.String snapshotName) |
Delete a snapshot of a directory.
|
AclStatus |
getAclStatus(Path path) |
Gets the ACL of a file or directory.
|
java.util.Collection<? extends BlockStoragePolicySpi> |
getAllStoragePolicies() |
Retrieve all the storage policies supported by this file system.
|
protected java.net.URI |
getCanonicalUri() |
Return a canonicalized form of this FileSystem's URI.
|
FileSystem[] |
getChildFileSystems() |
Get all the immediate child FileSystems embedded in this FileSystem.
|
Configuration |
getConf() |
Return the configuration used by this object.
|
long |
getDefaultBlockSize() |
Return the number of bytes that large input files should be optimally
be split into to minimize I/O time.
|
long |
getDefaultBlockSize(Path f) |
Return the number of bytes that large input files should be optimally
be split into to minimize I/O time.
|
short |
getDefaultReplication() |
Get the default replication.
|
short |
getDefaultReplication(Path f) |
Get the default replication for a path.
|
Path |
getEnclosingRoot(Path path) |
Return path of the enclosing root for a given path.
|
BlockLocation[] |
getFileBlockLocations(FileStatus file,
long start,
long len) |
Return an array containing hostnames, offset and size of
portions of the given file.
|
FileChecksum |
getFileChecksum(Path f) |
Get the checksum of a file, if the FS supports checksums.
|
FileChecksum |
getFileChecksum(Path f,
long length) |
Get the checksum of a file, from the beginning of the file till the
specific length.
|
FileStatus |
getFileLinkStatus(Path f) |
|
FileStatus |
getFileStatus(Path f) |
Get file status.
|
Path |
getHomeDirectory() |
Return the current user's home directory in this FileSystem.
|
protected Path |
getInitialWorkingDirectory() |
Note: with the new FileContext class, getWorkingDirectory()
will be removed.
|
Path |
getLinkTarget(Path f) |
|
FileSystem |
getRawFileSystem() |
Get the raw file system
|
FsServerDefaults |
getServerDefaults() |
Return a set of server default configuration values.
|
FsServerDefaults |
getServerDefaults(Path f) |
Return a set of server default configuration values.
|
FsStatus |
getStatus(Path p) |
Returns a status object describing the use and capacity of the
filesystem.
|
BlockStoragePolicySpi |
getStoragePolicy(Path src) |
Query the effective storage policy ID for the given file or directory.
|
Path |
getTrashRoot(Path path) |
Get the root directory of Trash for current user when the path specified
is deleted.
|
java.util.Collection<FileStatus> |
getTrashRoots(boolean allUsers) |
Get all the trash roots for current user or all users.
|
java.net.URI |
getUri() |
Returns a URI whose scheme and authority identify this FileSystem.
|
long |
getUsed() |
Return the total size of all files in the filesystem.
|
long |
getUsed(Path path) |
Return the total size of all files from a specified path.
|
Path |
getWorkingDirectory() |
Get the current working directory for the given file system
|
byte[] |
getXAttr(Path path,
java.lang.String name) |
Get an xattr name and value for a file or directory.
|
java.util.Map<java.lang.String,byte[]> |
getXAttrs(Path path) |
Get all of the xattr name/value pairs for a file or directory.
|
java.util.Map<java.lang.String,byte[]> |
getXAttrs(Path path,
java.util.List<java.lang.String> names) |
Get all of the xattrs name/value pairs for a file or directory.
|
boolean |
hasPathCapability(Path path,
java.lang.String capability) |
The base FileSystem implementation generally has no knowledge
of the capabilities of actual implementations.
|
void |
initialize(java.net.URI name,
Configuration conf) |
Called after a new FileSystem instance is constructed.
|
RemoteIterator<Path> |
listCorruptFileBlocks(Path path) |
List corrupted file blocks.
|
RemoteIterator<LocatedFileStatus> |
listLocatedStatus(Path f) |
List files and its block locations in a directory.
|
protected RemoteIterator<LocatedFileStatus> |
listLocatedStatus(Path f,
PathFilter filter) |
List a directory.
|
FileStatus[] |
listStatus(Path f) |
List files in a directory.
|
RemoteIterator<FileStatus> |
listStatusIterator(Path f) |
Return a remote iterator for listing in a directory
|
java.util.List<java.lang.String> |
listXAttrs(Path path) |
Get all of the xattr names for a file or directory.
|
Path |
makeQualified(Path path) |
Make sure that a path specifies a FileSystem.
|
boolean |
mkdirs(Path f) |
Call
FileSystem.mkdirs(Path, FsPermission) with default permission. |
boolean |
mkdirs(Path f,
FsPermission permission) |
Make the given file and all non-existent parents into
directories.
|
void |
modifyAclEntries(Path path,
java.util.List<AclEntry> aclSpec) |
Modifies ACL entries of files and directories.
|
void |
msync() |
Synchronize client metadata state.
|
FSDataInputStream |
open(PathHandle fd,
int bufferSize) |
Open an FSDataInputStream matching the PathHandle instance.
|
FSDataInputStream |
open(Path f,
int bufferSize) |
Opens an FSDataInputStream at the indicated Path.
|
FutureDataInputStreamBuilder |
openFile(Path path) |
Open a file for reading through a builder API.
|
FutureDataInputStreamBuilder |
openFile(PathHandle pathHandle) |
Open a file for reading through a builder API.
|
protected java.util.concurrent.CompletableFuture<FSDataInputStream> |
openFileWithOptions(PathHandle pathHandle,
OpenFileParameters parameters) |
Execute the actual open file operation.
|
protected java.util.concurrent.CompletableFuture<FSDataInputStream> |
openFileWithOptions(Path path,
OpenFileParameters parameters) |
Execute the actual open file operation.
|
protected FSDataOutputStream |
primitiveCreate(Path f,
FsPermission absolutePermission,
java.util.EnumSet<CreateFlag> flag,
int bufferSize,
short replication,
long blockSize,
Progressable progress,
Options.ChecksumOpt checksumOpt) |
This create has been added to support the FileContext that processes
the permission with umask before calling this method.
|
protected boolean |
primitiveMkdir(Path f,
FsPermission abdolutePermission) |
This version of the mkdirs method assumes that the permission is absolute.
|
void |
removeAcl(Path path) |
Removes all but the base ACL entries of files and directories.
|
void |
removeAclEntries(Path path,
java.util.List<AclEntry> aclSpec) |
Removes ACL entries from files and directories.
|
void |
removeDefaultAcl(Path path) |
Removes all default ACL entries from files and directories.
|
void |
removeXAttr(Path path,
java.lang.String name) |
Remove an xattr of a file or directory.
|
boolean |
rename(Path src,
Path dst) |
Renames Path src to Path dst.
|
protected void |
rename(Path src,
Path dst,
Options.Rename... options) |
Renames Path src to Path dst
Fails if src is a file and dst is a directory.
Fails if src is a directory and dst is a file.
Fails if the parent of dst does not exist or is a file.
|
void |
renameSnapshot(Path path,
java.lang.String snapshotOldName,
java.lang.String snapshotNewName) |
Rename a snapshot.
|
protected Path |
resolveLink(Path f) |
|
Path |
resolvePath(Path p) |
Return the fully-qualified path of path, resolving the path
through any symlinks or mount point.
|
void |
satisfyStoragePolicy(Path src) |
Set the source path to satisfy storage policy.
|
void |
setAcl(Path path,
java.util.List<AclEntry> aclSpec) |
Fully replaces ACL of files and directories, discarding all existing
entries.
|
void |
setOwner(Path p,
java.lang.String username,
java.lang.String groupname) |
Set owner of a path (i.e.
|
void |
setPermission(Path p,
FsPermission permission) |
Set permission of a path.
|
boolean |
setReplication(Path src,
short replication) |
Set replication for an existing file.
|
void |
setStoragePolicy(Path src,
java.lang.String policyName) |
Set the storage policy for a given file or directory.
|
void |
setTimes(Path p,
long mtime,
long atime) |
Set access time of a file.
|
void |
setVerifyChecksum(boolean verifyChecksum) |
Set the verify checksum flag.
|
void |
setWorkingDirectory(Path newDir) |
Set the current working directory for the given file system.
|
void |
setWriteChecksum(boolean writeChecksum) |
Set the write checksum flag.
|
void |
setXAttr(Path path,
java.lang.String name,
byte[] value) |
Set an xattr of a file or directory.
|
void |
setXAttr(Path path,
java.lang.String name,
byte[] value,
java.util.EnumSet<XAttrSetFlag> flag) |
Set an xattr of a file or directory.
|
Path |
startLocalOutput(Path fsOutputFile,
Path tmpLocalFile) |
Returns a local File that the user can write output to.
|
boolean |
supportsSymlinks() |
|
boolean |
truncate(Path f,
long newLength) |
Truncate the file in the indicated path to the indicated size.
|
void |
unsetStoragePolicy(Path src) |
Unset the storage policy set for a given file or directory.
|
append, append, append, append, areSymlinksEnabled, cancelDeleteOnExit, clearStatistics, closeAll, closeAllForUGI, copyFromLocalFile, copyToLocalFile, copyToLocalFile, create, create, create, create, create, create, create, create, create, create, create, createBulkDelete, createDataInputStreamBuilder, createDataInputStreamBuilder, createDataOutputStreamBuilder, createFid, createMultipartUploader, createNewFile, createNonRecursive, createNonRecursive, createPathId, createSnapshot, delete, deleteFid, deleteOnExit, enableSymlinks, exists, fixRelativePart, get, get, get, getAdditionalTokenIssuers, getAllStatistics, getBlockSize, getCanonicalServiceName, getContentSummary, getDefaultPort, getDefaultUri, getDelegationToken, getFileBlockLocations, getFileSystemClass, getFSofPath, getGlobalStorageStatistics, getJobTrackerAddrs, getLength, getLocal, getName, getNamed, getPathHandle, getQuotaUsage, getReplication, getScheme, getStatistics, getStatistics, getStatus, getStorageStatistics, getZkConnectString, globStatus, globStatus, isDirectory, isFile, listFiles, listStatus, listStatus, listStatus, listStatusBatch, mkdirs, mkdirsFid, mkdirsFid, moveFromLocalFile, moveFromLocalFile, moveToLocalFile, newInstance, newInstance, newInstance, newInstanceLocal, open, open, openFid, openFid, openFid2, primitiveMkdir, printStatistics, processDeleteOnExit, setDefaultUri, setDefaultUri, setOwnerFid, setQuota, setQuotaByStorageTypesetConfclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitaddDelegationTokensprotected FileSystem fs
protected java.lang.String swapScheme
public FilterFileSystem()
public FilterFileSystem(FileSystem fs)
public FileSystem getRawFileSystem()
public void initialize(java.net.URI name,
Configuration conf)
throws java.io.IOException
initialize in class FileSystemname - a uri whose authority section names the host, port, etc.
for this FileSystemconf - the configurationjava.io.IOException - on any failure to initialize this instance.public java.net.URI getUri()
getUri in class FileSystemprotected java.net.URI getCanonicalUri()
FileSystemFileSystem.canonicalizeUri(URI)
on the filesystem's own URI, so subclasses typically only need to
implement that method.getCanonicalUri in class FileSystemFileSystem.canonicalizeUri(URI)protected java.net.URI canonicalizeUri(java.net.URI uri)
FileSystemFileSystem.getDefaultPort() returns a
default port.canonicalizeUri in class FileSystemuri - url.NetUtils.getCanonicalUri(URI, int)public Path makeQualified(Path path)
makeQualified in class FileSystempath - to qualify.Path.makeQualified(URI, Path)protected void checkPath(Path path)
checkPath in class FileSystempath - to checkpublic BlockLocation[] getFileBlockLocations(FileStatus file, long start, long len) throws java.io.IOException
FileSystemnull is returned.
if f == null :
result = null
elif f.getLen() <= start:
result = []
else result = [ locations(FS, b) for b in blocks(FS, p, s, s+l)]
This call is most helpful with and distributed filesystem
where the hostnames of machines that contain blocks of the given file
can be determined.
The default implementation returns an array containing one element:
BlockLocation( { "localhost:9866" }, { "localhost" }, 0, file.getLen())
In HDFS, if file is three-replicated, the returned array contains
elements like:
BlockLocation(offset: 0, length: BLOCK_SIZE,
hosts: {"host1:9866", "host2:9866, host3:9866"})
BlockLocation(offset: BLOCK_SIZE, length: BLOCK_SIZE,
hosts: {"host2:9866", "host3:9866, host4:9866"})
And if a file is erasure-coded, the returned BlockLocation are logical
block groups.
Suppose we have a RS_3_2 coded file (3 data units and 2 parity units).
1. If the file size is less than one stripe size, say 2 * CELL_SIZE, then
there will be one BlockLocation returned, with 0 offset, actual file size
and 4 hosts (2 data blocks and 2 parity blocks) hosting the actual blocks.
3. If the file size is less than one group size but greater than one
stripe size, then there will be one BlockLocation returned, with 0 offset,
actual file size with 5 hosts (3 data blocks and 2 parity blocks) hosting
the actual blocks.
4. If the file size is greater than one group size, 3 * BLOCK_SIZE + 123
for example, then the result will be like:
BlockLocation(offset: 0, length: 3 * BLOCK_SIZE, hosts: {"host1:9866",
"host2:9866","host3:9866","host4:9866","host5:9866"})
BlockLocation(offset: 3 * BLOCK_SIZE, length: 123, hosts: {"host1:9866",
"host4:9866", "host5:9866"})
getFileBlockLocations in class FileSystemfile - FilesStatus to get data fromstart - offset into the given filelen - length for which to get locations forjava.io.IOException - IO failurepublic Path resolvePath(Path p) throws java.io.IOException
FileSystemresolvePath in class FileSystemp - path to be resolvedjava.io.FileNotFoundException - if the path is not presentjava.io.IOException - for any other errorpublic FSDataInputStream open(Path f, int bufferSize) throws java.io.IOException
open in class FileSystemf - the file name to openbufferSize - the size of the buffer to be used.java.io.IOException - IO failurepublic FSDataInputStream open(PathHandle fd, int bufferSize) throws java.io.IOException
FileSystemopen in class FileSystemfd - PathHandle object returned by the FS authority.bufferSize - the size of the buffer to useInvalidPathHandleException - If PathHandle constraints are
not satisfiedjava.io.IOException - IO failureprotected PathHandle createPathHandle(FileStatus stat, Options.HandleOpt... opts)
FileSystemPathHandle operations.createPathHandle in class FileSystemstat - Referent in the target FileSystemopts - Constraints that determine the validity of the
PathHandle reference.public FSDataOutputStream append(Path f, int bufferSize, Progressable progress) throws java.io.IOException
FileSystemappend in class FileSystemf - the existing file to be appended.bufferSize - the size of the buffer to be used.progress - for reporting progress if it is not null.java.io.IOException - IO failurepublic void concat(Path f, Path[] psrcs) throws java.io.IOException
FileSystemconcat in class FileSystemf - the path to the target destination.psrcs - the paths to the sources to use for the concatenation.java.io.IOException - IO failurepublic FSDataOutputStream create(Path f, FsPermission permission, boolean overwrite, int bufferSize, short replication, long blockSize, Progressable progress) throws java.io.IOException
FileSystemcreate in class FileSystemf - the file name to openpermission - file permissionoverwrite - if a file with this name already exists, then if true,
the file will be overwritten, and if false an error will be thrown.bufferSize - the size of the buffer to be used.replication - required block replication for the file.blockSize - block sizeprogress - the progress reporterjava.io.IOException - IO failureFileSystem.setPermission(Path, FsPermission)public FSDataOutputStream create(Path f, FsPermission permission, java.util.EnumSet<CreateFlag> flags, int bufferSize, short replication, long blockSize, Progressable progress, Options.ChecksumOpt checksumOpt) throws java.io.IOException
FileSystemcreate in class FileSystemf - the file name to openpermission - file permissionflags - CreateFlags to use for this stream.bufferSize - the size of the buffer to be used.replication - required block replication for the file.blockSize - block sizeprogress - the progress reporterchecksumOpt - checksum parameter. If null, the values
found in conf will be used.java.io.IOException - IO failureFileSystem.setPermission(Path, FsPermission)protected RemoteIterator<LocatedFileStatus> listLocatedStatus(Path f, PathFilter filter) throws java.io.FileNotFoundException, java.io.IOException
FileSystemlistLocatedStatus in class FileSystemf - a pathfilter - a path filterjava.io.FileNotFoundException - if f does not existjava.io.IOException - if any I/O error occurredpublic FSDataOutputStream createNonRecursive(Path f, FsPermission permission, java.util.EnumSet<CreateFlag> flags, int bufferSize, short replication, long blockSize, Progressable progress) throws java.io.IOException
FileSystemcreateNonRecursive in class FileSystemf - the file name to openpermission - file permissionflags - CreateFlags to use for this stream.bufferSize - the size of the buffer to be used.replication - required block replication for the file.blockSize - block sizeprogress - the progress reporterjava.io.IOException - IO failureFileSystem.setPermission(Path, FsPermission)public boolean setReplication(Path src, short replication) throws java.io.IOException
setReplication in class FileSystemsrc - file namereplication - new replicationjava.io.IOException - raised on errors performing I/O.public boolean rename(Path src, Path dst) throws java.io.IOException
rename in class FileSystemsrc - path to be renameddst - new path after renamejava.io.IOException - on failureprotected void rename(Path src, Path dst, Options.Rename... options) throws java.io.IOException
FileSystemIf OVERWRITE option is not passed as an argument, rename fails if the dst already exists.
If OVERWRITE option is passed as an argument, rename overwrites the dst if it is a file or an empty directory. Rename fails if dst is a non-empty directory.
Note that atomicity of rename is dependent on the file system implementation. Please refer to the file system documentation for details. This default implementation is non atomic.This method is deprecated since it is a temporary method added to support the transition from FileSystem to FileContext for user applications.
rename in class FileSystemsrc - path to be renameddst - new path after renameoptions - rename options.java.io.FileNotFoundException - src path does not exist, or the parent
path of dst does not exist.FileAlreadyExistsException - dest path exists and is a fileParentNotDirectoryException - if the parent path of dest is not
a directoryjava.io.IOException - on failurepublic boolean truncate(Path f, long newLength) throws java.io.IOException
FileSystemtruncate in class FileSystemf - The path to the file to be truncatednewLength - The size the file is to be truncated totrue if the file has been truncated to the desired
newLength and is immediately available to be reused for
write operations such as append, or
false if a background process of adjusting the length of
the last block has been started, and clients should wait for it to
complete before proceeding with further file updates.java.io.IOException - IO failurepublic boolean delete(Path f, boolean recursive) throws java.io.IOException
delete in class FileSystemf - the path to delete.recursive - if path is a directory and set to
true, the directory is deleted else throws an exception. In
case of a file the recursive can be set to either true or false.java.io.IOException - IO failurepublic FileStatus[] listStatus(Path f) throws java.io.IOException
listStatus in class FileSystemf - given pathjava.io.FileNotFoundException - when the path does not existjava.io.IOException - see specific implementationpublic RemoteIterator<Path> listCorruptFileBlocks(Path path) throws java.io.IOException
FileSystemlistCorruptFileBlocks in class FileSystempath - the path.java.io.IOException - IO failurepublic RemoteIterator<LocatedFileStatus> listLocatedStatus(Path f) throws java.io.IOException
listLocatedStatus in class FileSystemf - is the pathjava.io.FileNotFoundException - If f does not existjava.io.IOException - If an I/O error occurredpublic RemoteIterator<FileStatus> listStatusIterator(Path f) throws java.io.IOException
listStatusIterator in class FileSystemf - target pathjava.io.FileNotFoundException - if p does not existjava.io.IOException - if any I/O error occurredpublic Path getHomeDirectory()
FileSystem"/user/$USER/".getHomeDirectory in class FileSystempublic void setWorkingDirectory(Path newDir)
setWorkingDirectory in class FileSystemnewDir - new dir.public Path getWorkingDirectory()
getWorkingDirectory in class FileSystemprotected Path getInitialWorkingDirectory()
FileSystemgetInitialWorkingDirectory in class FileSystempublic FsStatus getStatus(Path p) throws java.io.IOException
FileSystemgetStatus in class FileSystemp - Path for which status should be obtained. null means
the default partition.java.io.IOException - see specific implementationpublic boolean mkdirs(Path f, FsPermission permission) throws java.io.IOException
FileSystemmkdirs in class FileSystemf - path to createpermission - to apply to fjava.io.IOException - IO failurepublic boolean mkdirs(Path f) throws java.io.IOException
FileSystemFileSystem.mkdirs(Path, FsPermission) with default permission.mkdirs in class FileSystemf - pathjava.io.IOException - IO failurepublic void copyFromLocalFile(boolean delSrc,
Path src,
Path dst)
throws java.io.IOException
copyFromLocalFile in class FileSystemdelSrc - whether to delete the srcsrc - pathdst - pathjava.io.IOException - IO failure.public void copyFromLocalFile(boolean delSrc,
boolean overwrite,
Path[] srcs,
Path dst)
throws java.io.IOException
copyFromLocalFile in class FileSystemdelSrc - whether to delete the srcoverwrite - whether to overwrite an existing filesrcs - array of paths which are sourcedst - pathjava.io.IOException - IO failurepublic void copyFromLocalFile(boolean delSrc,
boolean overwrite,
Path src,
Path dst)
throws java.io.IOException
copyFromLocalFile in class FileSystemdelSrc - whether to delete the srcoverwrite - whether to overwrite an existing filesrc - pathdst - pathjava.io.IOException - IO failurepublic void copyToLocalFile(boolean delSrc,
Path src,
Path dst)
throws java.io.IOException
copyToLocalFile in class FileSystemdelSrc - whether to delete the srcsrc - path src file in the remote filesystemdst - path local destinationjava.io.IOException - IO failurepublic Path startLocalOutput(Path fsOutputFile, Path tmpLocalFile) throws java.io.IOException
startLocalOutput in class FileSystemfsOutputFile - path of output filetmpLocalFile - path of local tmp filejava.io.IOException - IO failurepublic void completeLocalOutput(Path fsOutputFile, Path tmpLocalFile) throws java.io.IOException
completeLocalOutput in class FileSystemfsOutputFile - path of output filetmpLocalFile - path to local tmp filejava.io.IOException - IO failurepublic long getUsed()
throws java.io.IOException
getUsed in class FileSystemjava.io.IOException - IO failurepublic long getUsed(Path path) throws java.io.IOException
getUsed in class FileSystempath - the path.java.io.IOException - IO failurepublic long getDefaultBlockSize()
FileSystemgetDefaultBlockSize in class FileSystempublic short getDefaultReplication()
FileSystemgetDefaultReplication in class FileSystempublic FsServerDefaults getServerDefaults() throws java.io.IOException
FileSystemgetServerDefaults in class FileSystemjava.io.IOException - IO failurepublic long getDefaultBlockSize(Path f)
FileSystemgetDefaultBlockSize in class FileSystemf - path of filepublic short getDefaultReplication(Path f)
FileSystemgetDefaultReplication in class FileSystemf - of the filepublic FsServerDefaults getServerDefaults(Path f) throws java.io.IOException
FileSystemgetServerDefaults in class FileSystemf - path is used to identify an FS since an FS could have
another FS that it could be delegating the call tojava.io.IOException - IO failurepublic FileStatus getFileStatus(Path f) throws java.io.IOException
getFileStatus in class FileSystemf - The path we want information fromjava.io.FileNotFoundException - when the path does not existjava.io.IOException - see specific implementationpublic void msync()
throws java.io.IOException,
java.lang.UnsupportedOperationException
FileSystemIn some FileSystem implementations such as HDFS metadata synchronization is essential to guarantee consistency of read requests particularly in HA setting.
msync in class FileSystemjava.io.IOException - If an I/O error occurred.java.lang.UnsupportedOperationException - if the operation is unsupported.public void access(Path path, FsAction mode) throws AccessControlException, java.io.FileNotFoundException, java.io.IOException
FileSystemAccessControlException.
The default implementation calls FileSystem.getFileStatus(Path)
and checks the returned permissions against the requested permissions.
Note that the FileSystem.getFileStatus(Path) call will be subject to
authorization checks.
Typically, this requires search (execute) permissions on each directory in
the path's prefix, but this is implementation-defined. Any file system
that provides a richer authorization model (such as ACLs) may override the
default implementation so that it checks against that model instead.
In general, applications should avoid using this method, due to the risk of
time-of-check/time-of-use race conditions. The permissions on a file may
change immediately after the access call returns. Most applications should
prefer running specific file system actions as the desired user represented
by a UserGroupInformation.
access in class FileSystempath - Path to checkmode - type of access to checkAccessControlException - if access is deniedjava.io.FileNotFoundException - if the path does not existjava.io.IOException - see specific implementationpublic void createSymlink(Path target, Path link, boolean createParent) throws AccessControlException, FileAlreadyExistsException, java.io.FileNotFoundException, ParentNotDirectoryException, UnsupportedFileSystemException, java.io.IOException
FileSystemcreateSymlink in class FileSystemtarget - target path.link - link.createParent - create parent.AccessControlException - if access is denied.FileAlreadyExistsException - when the path does not exist.java.io.FileNotFoundException - when the path does not exist.ParentNotDirectoryException - if the parent path of dest is not
a directory.UnsupportedFileSystemException - if there was no known implementation
for the scheme.java.io.IOException - raised on errors performing I/O.public FileStatus getFileLinkStatus(Path f) throws AccessControlException, java.io.FileNotFoundException, UnsupportedFileSystemException, java.io.IOException
FileSystemgetFileLinkStatus in class FileSystemf - the path.AccessControlException - if access is denied.java.io.FileNotFoundException - when the path does not exist.UnsupportedFileSystemException - if there was no known implementation
for the scheme.java.io.IOException - raised on errors performing I/O.public boolean supportsSymlinks()
FileSystemsupportsSymlinks in class FileSystempublic Path getLinkTarget(Path f) throws java.io.IOException
FileSystemgetLinkTarget in class FileSystemf - the path.java.io.IOException - IO failure.protected Path resolveLink(Path f) throws java.io.IOException
FileSystemresolveLink in class FileSystemf - the path.java.io.IOException - IO failure.public FileChecksum getFileChecksum(Path f) throws java.io.IOException
FileSystemgetFileChecksum in class FileSystemf - The file pathjava.io.IOException - IO failurepublic FileChecksum getFileChecksum(Path f, long length) throws java.io.IOException
FileSystemgetFileChecksum in class FileSystemf - The file pathlength - The length of the file range for checksum calculationjava.io.IOException - IO failurepublic void setVerifyChecksum(boolean verifyChecksum)
FileSystemsetVerifyChecksum in class FileSystemverifyChecksum - Verify checksum flagpublic void setWriteChecksum(boolean writeChecksum)
FileSystemsetWriteChecksum in class FileSystemwriteChecksum - Write checksum flagpublic Configuration getConf()
ConfigurablegetConf in interface ConfigurablegetConf in class Configuredpublic void close()
throws java.io.IOException
FileSystemFileSystem.deleteOnExit(Path), and remove this FS instance
from the cache, if cached.
After this operation, the outcome of any method call on this FileSystem
instance, or any input/output stream created by it is undefined.close in interface java.lang.AutoCloseableclose in interface java.io.Closeableclose in class FileSystemjava.io.IOException - IO failurepublic void setOwner(Path p, java.lang.String username, java.lang.String groupname) throws java.io.IOException
FileSystemsetOwner in class FileSystemp - The pathusername - If it is null, the original username remains unchanged.groupname - If it is null, the original groupname remains unchanged.java.io.IOException - IO failurepublic void setTimes(Path p, long mtime, long atime) throws java.io.IOException
FileSystemsetTimes in class FileSystemp - The pathmtime - Set the modification time of this file.
The number of milliseconds since Jan 1, 1970.
A value of -1 means that this call should not set modification time.atime - Set the access time of this file.
The number of milliseconds since Jan 1, 1970.
A value of -1 means that this call should not set access time.java.io.IOException - IO failurepublic void setPermission(Path p, FsPermission permission) throws java.io.IOException
FileSystemsetPermission in class FileSystemp - The pathpermission - permissionjava.io.IOException - IO failureprotected FSDataOutputStream primitiveCreate(Path f, FsPermission absolutePermission, java.util.EnumSet<CreateFlag> flag, int bufferSize, short replication, long blockSize, Progressable progress, Options.ChecksumOpt checksumOpt) throws java.io.IOException
FileSystemprimitiveCreate in class FileSystemf - path.absolutePermission - permission.flag - create flag.bufferSize - buffer size.replication - replication.blockSize - block size.progress - progress.checksumOpt - check sum opt.java.io.IOException - IO failureprotected boolean primitiveMkdir(Path f, FsPermission abdolutePermission) throws java.io.IOException
FileSystemprimitiveMkdir in class FileSystemf - pathabdolutePermission - permissionsjava.io.IOException - IO failureFileSystem.mkdirs(Path, FsPermission)public FileSystem[] getChildFileSystems()
FileSystemgetChildFileSystems in class FileSystempublic Path createSnapshot(Path path, java.lang.String snapshotName) throws java.io.IOException
FileSystemcreateSnapshot in class FileSystempath - The directory where snapshots will be taken.snapshotName - The name of the snapshotjava.io.IOException - IO failurepublic void renameSnapshot(Path path, java.lang.String snapshotOldName, java.lang.String snapshotNewName) throws java.io.IOException
FileSystemrenameSnapshot in class FileSystempath - The directory path where the snapshot was takensnapshotOldName - Old name of the snapshotsnapshotNewName - New name of the snapshotjava.io.IOException - IO failurepublic void deleteSnapshot(Path path, java.lang.String snapshotName) throws java.io.IOException
FileSystemdeleteSnapshot in class FileSystempath - The directory that the to-be-deleted snapshot belongs tosnapshotName - The name of the snapshotjava.io.IOException - IO failurepublic void modifyAclEntries(Path path, java.util.List<AclEntry> aclSpec) throws java.io.IOException
FileSystemmodifyAclEntries in class FileSystempath - Path to modifyaclSpec - List<AclEntry> describing modificationsjava.io.IOException - if an ACL could not be modifiedpublic void removeAclEntries(Path path, java.util.List<AclEntry> aclSpec) throws java.io.IOException
FileSystemremoveAclEntries in class FileSystempath - Path to modifyaclSpec - List describing entries to removejava.io.IOException - if an ACL could not be modifiedpublic void removeDefaultAcl(Path path) throws java.io.IOException
FileSystemremoveDefaultAcl in class FileSystempath - Path to modifyjava.io.IOException - if an ACL could not be modifiedpublic void removeAcl(Path path) throws java.io.IOException
FileSystemremoveAcl in class FileSystempath - Path to modifyjava.io.IOException - if an ACL could not be removedpublic void setAcl(Path path, java.util.List<AclEntry> aclSpec) throws java.io.IOException
FileSystemsetAcl in class FileSystempath - Path to modifyaclSpec - List describing modifications, which must include entries
for user, group, and others for compatibility with permission bits.java.io.IOException - if an ACL could not be modifiedpublic AclStatus getAclStatus(Path path) throws java.io.IOException
FileSystemgetAclStatus in class FileSystempath - Path to getjava.io.IOException - if an ACL could not be readpublic void setXAttr(Path path, java.lang.String name, byte[] value) throws java.io.IOException
FileSystemRefer to the HDFS extended attributes user documentation for details.
setXAttr in class FileSystempath - Path to modifyname - xattr name.value - xattr value.java.io.IOException - IO failurepublic void setXAttr(Path path, java.lang.String name, byte[] value, java.util.EnumSet<XAttrSetFlag> flag) throws java.io.IOException
FileSystemRefer to the HDFS extended attributes user documentation for details.
setXAttr in class FileSystempath - Path to modifyname - xattr name.value - xattr value.flag - xattr set flagjava.io.IOException - IO failurepublic byte[] getXAttr(Path path, java.lang.String name) throws java.io.IOException
FileSystemRefer to the HDFS extended attributes user documentation for details.
getXAttr in class FileSystempath - Path to get extended attributename - xattr name.java.io.IOException - IO failurepublic java.util.Map<java.lang.String,byte[]> getXAttrs(Path path) throws java.io.IOException
FileSystemRefer to the HDFS extended attributes user documentation for details.
getXAttrs in class FileSystempath - Path to get extended attributesjava.io.IOException - IO failurepublic java.util.Map<java.lang.String,byte[]> getXAttrs(Path path, java.util.List<java.lang.String> names) throws java.io.IOException
FileSystemRefer to the HDFS extended attributes user documentation for details.
getXAttrs in class FileSystempath - Path to get extended attributesnames - XAttr names.java.io.IOException - IO failurepublic java.util.List<java.lang.String> listXAttrs(Path path) throws java.io.IOException
FileSystemRefer to the HDFS extended attributes user documentation for details.
listXAttrs in class FileSystempath - Path to get extended attributesjava.io.IOException - IO failurepublic void removeXAttr(Path path, java.lang.String name) throws java.io.IOException
FileSystemRefer to the HDFS extended attributes user documentation for details.
removeXAttr in class FileSystempath - Path to remove extended attributename - xattr namejava.io.IOException - IO failurepublic void satisfyStoragePolicy(Path src) throws java.io.IOException
FileSystemsatisfyStoragePolicy in class FileSystemsrc - The source path referring to either a directory or a file.java.io.IOException - If an I/O error occurred.public void setStoragePolicy(Path src, java.lang.String policyName) throws java.io.IOException
FileSystemsetStoragePolicy in class FileSystemsrc - file or directory path.policyName - the name of the target storage policy. The list
of supported Storage policies can be retrieved
via FileSystem.getAllStoragePolicies().java.io.IOException - IO failurepublic void unsetStoragePolicy(Path src) throws java.io.IOException
FileSystemunsetStoragePolicy in class FileSystemsrc - file or directory path.java.io.IOException - IO failurepublic BlockStoragePolicySpi getStoragePolicy(Path src) throws java.io.IOException
FileSystemgetStoragePolicy in class FileSystemsrc - file or directory path.java.io.IOException - IO failurepublic java.util.Collection<? extends BlockStoragePolicySpi> getAllStoragePolicies() throws java.io.IOException
FileSystemgetAllStoragePolicies in class FileSystemjava.io.IOException - IO failurepublic Path getTrashRoot(Path path)
FileSystemgetTrashRoot in class FileSystempath - the trash root of the path to be determined./user/$USER/.Trashpublic java.util.Collection<FileStatus> getTrashRoots(boolean allUsers)
FileSystemgetTrashRoots in class FileSystemallUsers - return trash roots for all users if true./user/$USER/.Trash exists.public FSDataOutputStreamBuilder createFile(Path path)
FileSystemcreateFile in class FileSystempath - file pathpublic FSDataOutputStreamBuilder appendFile(Path path)
FileSystemappendFile in class FileSystempath - file path.FSDataOutputStreamBuilder to build file append request.public FutureDataInputStreamBuilder openFile(Path path) throws java.io.IOException, java.lang.UnsupportedOperationException
FileSystemFileSystem.open(Path, int) unless a subclass
executes the open command differently.
The semantics of this call are therefore the same as that of
FileSystem.open(Path, int) with one special point: it is in
FSDataInputStreamBuilder.build() in which the open operation
takes place -it is there where all preconditions to the operation
are checked.openFile in class FileSystempath - file pathjava.io.IOException - if some early checks cause IO failures.java.lang.UnsupportedOperationException - if support is checked early.public FutureDataInputStreamBuilder openFile(PathHandle pathHandle) throws java.io.IOException, java.lang.UnsupportedOperationException
FileSystemFileSystem.open(PathHandle, int) unless a subclass
executes the open command differently.
If PathHandles are unsupported, this may fail in the
FSDataInputStreamBuilder.build() command,
rather than in this openFile() operation.openFile in class FileSystempathHandle - path handle.java.io.IOException - if some early checks cause IO failures.java.lang.UnsupportedOperationException - if support is checked early.protected java.util.concurrent.CompletableFuture<FSDataInputStream> openFileWithOptions(Path path, OpenFileParameters parameters) throws java.io.IOException
FileSystemFSDataInputStreamBuilder.build()
and from DelegateToFileSystem and is where
the action of opening the file should begin.
The base implementation performs a blocking
call to FileSystem.open(Path, int) in this call;
the actual outcome is in the returned CompletableFuture.
This avoids having to create some thread pool, while still
setting up the expectation that the get() call
is needed to evaluate the result.openFileWithOptions in class FileSystempath - path to the fileparameters - open file parameters from the builder.java.io.IOException - failure to resolve the link.protected java.util.concurrent.CompletableFuture<FSDataInputStream> openFileWithOptions(PathHandle pathHandle, OpenFileParameters parameters) throws java.io.IOException
FileSystemFileSystem.open(Path, int) in this call;
the actual outcome is in the returned CompletableFuture.
This avoids having to create some thread pool, while still
setting up the expectation that the get() call
is needed to evaluate the result.openFileWithOptions in class FileSystempathHandle - path to the fileparameters - open file parameters from the builder.java.io.IOException - failure to resolve the link.public Path getEnclosingRoot(Path path) throws java.io.IOException
FileSystemgetEnclosingRoot in class FileSystempath - file path to find the enclosing root path forjava.io.IOException - early checks like failure to resolve path cause IO failurespublic boolean hasPathCapability(Path path, java.lang.String capability) throws java.io.IOException
FileSystemtrue, this instance is explicitly
declaring that the capability is available.
If the function returns false, it can mean one of:
Implementors: PathCapabilitiesSupport
can be used to help implement this method.
hasPathCapability in interface PathCapabilitieshasPathCapability in class FileSystempath - path to query the capability of.capability - non-null, non-empty string to query the path for support.java.io.IOException - this should not be raised, except on problems
resolving paths or relaying the call.Copyright © 2008–2025 Apache Software Foundation. All rights reserved.