@InterfaceAudience.Public @InterfaceStability.Stable public class NativeS3FileSystem extends FileSystem
FileSystem for reading and writing files stored on
Amazon S3.
Unlike S3FileSystem this implementation
stores files on S3 in their
native form so they can be read by other S3 tools.
A note about directories. S3 of course has no "native" support for them. The idiom we choose then is: for any directory created by this class, we use an empty object "#{dirpath}_$folder$" as a marker. Further, to interoperate with other S3 tools, we also accept the following:
S3FileSystem| Modifier and Type | Field and Description |
|---|---|
static org.slf4j.Logger |
LOG |
DEFAULT_FS, FS_DEFAULT_NAME_KEY, SHUTDOWN_HOOK_PRIORITY, statistics, TRASH_PREFIX, USER_HOME_PREFIX| Constructor and Description |
|---|
NativeS3FileSystem() |
NativeS3FileSystem(org.apache.hadoop.fs.s3native.NativeFileSystemStore store) |
| Modifier and Type | Method and Description |
|---|---|
FSDataOutputStream |
append(Path f,
int bufferSize,
Progressable progress)
This optional operation is not yet supported.
|
protected URI |
canonicalizeUri(URI rawUri)
Canonicalize the given URI.
|
protected void |
checkPath(Path path)
Check that a Path belongs to this FileSystem.
|
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.
|
boolean |
delete(Path f,
boolean recurse)
Delete a file.
|
String |
getCanonicalServiceName()
Get a canonical service name for this FileSystem.
|
long |
getDefaultBlockSize()
Return the number of bytes that large input files should be optimally
be split into to minimize I/O time.
|
FileStatus |
getFileStatus(Path f)
Return a file status object that represents the path.
|
String |
getScheme()
Return the protocol scheme for the FileSystem.
|
URI |
getUri()
Returns a URI which identifies this FileSystem.
|
Path |
getWorkingDirectory()
Get the current working directory for the given FileSystem
|
void |
initialize(URI uri,
Configuration conf)
Initialize a FileSystem.
|
FileStatus[] |
listStatus(Path f)
If
f is a file, this method will make a single call to S3. |
boolean |
mkdirs(Path f,
FsPermission permission)
Make the given file and all non-existent parents into
directories.
|
FSDataInputStream |
open(Path f,
int bufferSize)
Opens an FSDataInputStream at the indicated Path.
|
boolean |
rename(Path src,
Path dst)
Renames Path src to Path dst.
|
void |
setWorkingDirectory(Path newDir)
Set the working directory to the given directory.
|
addDelegationTokens, append, append, appendFile, areSymlinksEnabled, cancelDeleteOnExit, clearStatistics, close, closeAll, closeAllForUGI, completeLocalOutput, concat, copyFromLocalFile, copyFromLocalFile, copyFromLocalFile, copyFromLocalFile, copyToLocalFile, copyToLocalFile, copyToLocalFile, create, create, create, create, create, create, create, create, create, create, create, create, createFile, createNewFile, createNonRecursive, createNonRecursive, createNonRecursive, createSnapshot, createSnapshot, createSymlink, delete, deleteOnExit, deleteSnapshot, enableSymlinks, exists, fixRelativePart, get, get, get, getAclStatus, getAllStatistics, getAllStoragePolicies, getBlockSize, getCanonicalUri, getContentSummary, getDefaultBlockSize, getDefaultPort, getDefaultReplication, getDefaultReplication, getDefaultUri, getFileBlockLocations, getFileBlockLocations, getFileChecksum, getFileChecksum, getFileLinkStatus, getFileSystemClass, getFSofPath, getGlobalStorageStatistics, getHomeDirectory, getInitialWorkingDirectory, getLength, getLinkTarget, getLocal, getName, getNamed, getQuotaUsage, getReplication, getServerDefaults, getServerDefaults, getStatistics, getStatistics, getStatus, getStatus, getStoragePolicy, getStorageStatistics, getTrashRoot, getTrashRoots, getUsed, getUsed, getXAttr, getXAttrs, getXAttrs, globStatus, globStatus, isDirectory, isFile, listCorruptFileBlocks, listFiles, listLocatedStatus, listLocatedStatus, listStatus, listStatus, listStatus, listStatusIterator, listXAttrs, makeQualified, mkdirs, mkdirs, modifyAclEntries, moveFromLocalFile, moveFromLocalFile, moveToLocalFile, newInstance, newInstance, newInstance, newInstanceLocal, open, primitiveCreate, primitiveMkdir, primitiveMkdir, printStatistics, processDeleteOnExit, removeAcl, removeAclEntries, removeDefaultAcl, removeXAttr, rename, renameSnapshot, resolveLink, resolvePath, setAcl, setDefaultUri, setDefaultUri, setOwner, setPermission, setReplication, setStoragePolicy, setTimes, setVerifyChecksum, setWriteChecksum, setXAttr, setXAttr, startLocalOutput, supportsSymlinks, truncate, unsetStoragePolicygetConf, setConfpublic NativeS3FileSystem()
public NativeS3FileSystem(org.apache.hadoop.fs.s3native.NativeFileSystemStore store)
public String getScheme()
getScheme in class FileSystems3npublic void initialize(URI uri, Configuration conf) throws IOException
FileSysteminitialize in class FileSystemuri - a URI whose authority section names the host, port, etc.
for this FileSystemconf - the configurationIOException - on any failure to initialize this instance.protected void checkPath(Path path)
checkPath in class FileSystempath - to checkIllegalArgumentException - if there is an FS mismatchprotected URI canonicalizeUri(URI rawUri)
FileSystemFileSystem.getDefaultPort() returns a
default port.canonicalizeUri in class FileSystemNetUtils.getCanonicalUri(URI, int)public FSDataOutputStream append(Path f, int bufferSize, Progressable progress) throws IOException
append 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.IOException - IO failurepublic FSDataOutputStream create(Path f, FsPermission permission, boolean overwrite, int bufferSize, short replication, long blockSize, Progressable progress) throws 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 reporterIOException - IO failureFileSystem.setPermission(Path, FsPermission)public boolean delete(Path f, boolean recurse) throws IOException
FileSystemdelete in class FileSystemf - the path to delete.recurse - 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.IOException - IO failurepublic FileStatus getFileStatus(Path f) throws IOException
FileSystemgetFileStatus in class FileSystemf - The path we want information fromFileNotFoundException - when the path does not existIOException - see specific implementationpublic URI getUri()
FileSystemgetUri in class FileSystempublic FileStatus[] listStatus(Path f) throws IOException
If f is a file, this method will make a single call to S3.
If f is a directory, this method will make a maximum of
(n / 1000) + 2 calls to S3, where n is the total number of
files and directories contained directly in f.
listStatus in class FileSystemf - given pathFileNotFoundException - when the path does not existIOException - see specific implementationpublic boolean mkdirs(Path f, FsPermission permission) throws IOException
FileSystemmkdirs in class FileSystemf - path to createpermission - to apply to fIOException - IO failurepublic FSDataInputStream open(Path f, int bufferSize) throws IOException
FileSystemopen in class FileSystemf - the file name to openbufferSize - the size of the buffer to be used.IOException - IO failurepublic boolean rename(Path src, Path dst) throws IOException
FileSystemrename in class FileSystemsrc - path to be renameddst - new path after renameIOException - on failurepublic long getDefaultBlockSize()
FileSystemgetDefaultBlockSize in class FileSystempublic void setWorkingDirectory(Path newDir)
setWorkingDirectory in class FileSystemnewDir - Path of new working directorypublic Path getWorkingDirectory()
FileSystemgetWorkingDirectory in class FileSystempublic String getCanonicalServiceName()
FileSystemgetCanonicalServiceName in class FileSystemSecurityUtil.buildDTServiceName(URI, int)Copyright © 2018 Apache Software Foundation. All rights reserved.