Class S3FileIO
- All Implemented Interfaces:
- Closeable,- Serializable,- AutoCloseable,- CredentialSupplier,- DelegateFileIO,- FileIO,- SupportsBulkOperations,- SupportsPrefixOperations,- SupportsRecoveryOperations,- SupportsStorageCredentials
Locations used must follow the conventions for S3 URIs (e.g. s3://bucket/path...). URIs with
 schemes s3a, s3n, https are also treated as s3 file paths. Using this FileIO with other schemes
 will result in ValidationException.
- See Also:
- 
Constructor SummaryConstructorsConstructorDescriptionS3FileIO()No-arg constructor to load the FileIO dynamically.S3FileIO(SerializableSupplier<software.amazon.awssdk.services.s3.S3Client> s3) Constructor with custom s3 supplier and S3FileIO properties.S3FileIO(SerializableSupplier<software.amazon.awssdk.services.s3.S3Client> s3, S3FileIOProperties s3FileIOProperties) Deprecated.S3FileIO(SerializableSupplier<software.amazon.awssdk.services.s3.S3Client> s3, SerializableSupplier<software.amazon.awssdk.services.s3.S3AsyncClient> s3Async) Constructor with custom s3 supplier and s3Async supplier.S3FileIO(SerializableSupplier<software.amazon.awssdk.services.s3.S3Client> s3, SerializableSupplier<software.amazon.awssdk.services.s3.S3AsyncClient> s3Async, S3FileIOProperties s3FileIOProperties) Deprecated.since 1.10.0, will be removed in 1.11.0; useS3FileIO(SerializableSupplier, SerializableSupplier)withinitialize(Map)instead
- 
Method SummaryModifier and TypeMethodDescriptionsoftware.amazon.awssdk.services.s3.S3AsyncClientsoftware.amazon.awssdk.services.s3.S3AsyncClientasyncClient(String storagePath) software.amazon.awssdk.services.s3.S3Clientclient()software.amazon.awssdk.services.s3.S3Clientvoidclose()Close File IO to release underlying resources.voiddeleteFile(String path) Delete the file at the given path.voiddeleteFiles(Iterable<String> paths) Deletes the given paths in a batched manner.voiddeletePrefix(String prefix) This method provides a "best-effort" to delete all objects under the given prefix.protected voidfinalize()Returns the credential stringvoidinitialize(Map<String, String> props) Initialize File IO from catalog properties.listPrefix(String prefix) Return an iterable of all files under a prefix.newInputFile(String path) Get aInputFileinstance to read bytes from the file at the given path.newInputFile(String path, long length) Get aInputFileinstance to read bytes from the file at the given path, with a known file length.newOutputFile(String path) Get aOutputFileinstance to write bytes to the file at the given path.Returns the property map used to configure this FileIObooleanrecoverFile(String path) Perform a best-effort recovery of a file at a given pathvoidsetCredentials(List<StorageCredential> credentials) Methods inherited from class java.lang.Objectclone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.iceberg.io.FileIOdeleteFile, deleteFile, newInputFile, newInputFile, newInputFile
- 
Constructor Details- 
S3FileIOpublic S3FileIO()No-arg constructor to load the FileIO dynamically.All fields are initialized by calling initialize(Map)later.
- 
S3FileIOConstructor with custom s3 supplier and S3FileIO properties.Calling initialize(Map)will overwrite information set in this constructor.- Parameters:
- s3- s3 supplier
 
- 
S3FileIOpublic S3FileIO(SerializableSupplier<software.amazon.awssdk.services.s3.S3Client> s3, SerializableSupplier<software.amazon.awssdk.services.s3.S3AsyncClient> s3Async) Constructor with custom s3 supplier and s3Async supplier.Calling initialize(Map)will overwrite information set in this constructor.- Parameters:
- s3- s3 supplier
- s3Async- s3Async supplier
 
- 
S3FileIO@Deprecated public S3FileIO(SerializableSupplier<software.amazon.awssdk.services.s3.S3Client> s3, S3FileIOProperties s3FileIOProperties) Deprecated.since 1.10.0, will be removed in 1.11.0; useS3FileIO(SerializableSupplier)withinitialize(Map)insteadConstructor with custom s3 supplier and S3FileIO properties.Calling initialize(Map)will overwrite information set in this constructor.- Parameters:
- s3- s3 supplier
- s3FileIOProperties- S3 FileIO properties
 
- 
S3FileIO@Deprecated public S3FileIO(SerializableSupplier<software.amazon.awssdk.services.s3.S3Client> s3, SerializableSupplier<software.amazon.awssdk.services.s3.S3AsyncClient> s3Async, S3FileIOProperties s3FileIOProperties) Deprecated.since 1.10.0, will be removed in 1.11.0; useS3FileIO(SerializableSupplier, SerializableSupplier)withinitialize(Map)insteadConstructor with custom s3 supplier, s3Async supplier and S3FileIO properties.Calling initialize(Map)will overwrite information set in this constructor.- Parameters:
- s3- s3 supplier
- s3Async- s3Async supplier
- s3FileIOProperties- S3 FileIO properties
 
 
- 
- 
Method Details- 
newInputFileDescription copied from interface:FileIOGet aInputFileinstance to read bytes from the file at the given path.- Specified by:
- newInputFilein interface- FileIO
 
- 
newInputFileDescription copied from interface:FileIOGet aInputFileinstance to read bytes from the file at the given path, with a known file length.- Specified by:
- newInputFilein interface- FileIO
 
- 
newOutputFileDescription copied from interface:FileIOGet aOutputFileinstance to write bytes to the file at the given path.- Specified by:
- newOutputFilein interface- FileIO
 
- 
deleteFileDescription copied from interface:FileIODelete the file at the given path.- Specified by:
- deleteFilein interface- FileIO
 
- 
propertiesDescription copied from interface:FileIOReturns the property map used to configure this FileIO- Specified by:
- propertiesin interface- FileIO
 
- 
deleteFilesDeletes the given paths in a batched manner.The paths are grouped by bucket, and deletion is triggered when we either reach the configured batch size or have a final remainder batch for each bucket. - Specified by:
- deleteFilesin interface- SupportsBulkOperations
- Parameters:
- paths- paths to delete
- Throws:
- BulkDeletionFailureException- in case of failure to delete at least 1 file
 
- 
listPrefixDescription copied from interface:SupportsPrefixOperationsReturn an iterable of all files under a prefix.Hierarchical file systems (e.g. HDFS) may impose additional restrictions like the prefix must fully match a directory whereas key/value object stores may allow for arbitrary prefixes. - Specified by:
- listPrefixin interface- SupportsPrefixOperations
- Parameters:
- prefix- prefix to list
- Returns:
- iterable of file information
 
- 
deletePrefixThis method provides a "best-effort" to delete all objects under the given prefix.Bulk delete operations are used and no reattempt is made for deletes if they fail, but will log any individual objects that are not deleted as part of the bulk operation. - Specified by:
- deletePrefixin interface- SupportsPrefixOperations
- Parameters:
- prefix- prefix to delete
 
- 
clientpublic software.amazon.awssdk.services.s3.S3Client client()
- 
client
- 
asyncClientpublic software.amazon.awssdk.services.s3.S3AsyncClient asyncClient()
- 
asyncClient
- 
getCredentialDescription copied from interface:CredentialSupplierReturns the credential string- Specified by:
- getCredentialin interface- CredentialSupplier
 
- 
initializeDescription copied from interface:FileIOInitialize File IO from catalog properties.- Specified by:
- initializein interface- FileIO
- Parameters:
- props- catalog properties
 
- 
closepublic void close()Description copied from interface:FileIOClose File IO to release underlying resources.Calling this method is only required when this FileIO instance is no longer expected to be used, and the resources it holds need to be explicitly released to avoid resource leaks. 
- 
finalize
- 
recoverFileDescription copied from interface:SupportsRecoveryOperationsPerform a best-effort recovery of a file at a given path- Specified by:
- recoverFilein interface- SupportsRecoveryOperations
- Parameters:
- path- Absolute path of file to attempt recovery for
- Returns:
- true if recovery was successful, false otherwise
 
- 
setCredentials- Specified by:
- setCredentialsin interface- SupportsStorageCredentials
 
- 
credentials- Specified by:
- credentialsin interface- SupportsStorageCredentials
 
 
- 
S3FileIO(SerializableSupplier)withinitialize(Map)instead