Package org.apache.iceberg.aws.s3
Class S3OutputFile
- java.lang.Object
-
- org.apache.iceberg.aws.s3.S3OutputFile
-
- All Implemented Interfaces:
NativelyEncryptedFile
,OutputFile
public class S3OutputFile extends java.lang.Object implements OutputFile, NativelyEncryptedFile
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description AwsProperties
awsProperties()
PositionOutputStream
create()
Create an output stream for the specified location if the target object does not exist in S3 at the time of invocation.PositionOutputStream
createOrOverwrite()
Create a new file and return aPositionOutputStream
to it.boolean
exists()
Note: this may be stale if file was deleted since metadata is cached for size/existence checks.static S3OutputFile
fromLocation(java.lang.String location, software.amazon.awssdk.services.s3.S3Client client, AwsProperties awsProperties, MetricsContext metrics)
protected software.amazon.awssdk.services.s3.model.HeadObjectResponse
getObjectMetadata()
java.lang.String
location()
protected MetricsContext
metrics()
NativeFileCryptoParameters
nativeCryptoParameters()
void
setNativeCryptoParameters(NativeFileCryptoParameters nativeCryptoParameters)
InputFile
toInputFile()
Return anInputFile
for the location of this output file.java.lang.String
toString()
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.apache.iceberg.io.OutputFile
location
-
-
-
-
Method Detail
-
fromLocation
public static S3OutputFile fromLocation(java.lang.String location, software.amazon.awssdk.services.s3.S3Client client, AwsProperties awsProperties, MetricsContext metrics)
-
create
public PositionOutputStream create()
Create an output stream for the specified location if the target object does not exist in S3 at the time of invocation.- Specified by:
create
in interfaceOutputFile
- Returns:
- output stream
-
createOrOverwrite
public PositionOutputStream createOrOverwrite()
Description copied from interface:OutputFile
Create a new file and return aPositionOutputStream
to it.If the file already exists, this will not throw an exception and will replace the file.
- Specified by:
createOrOverwrite
in interfaceOutputFile
- Returns:
- an output stream that can report its position
-
toInputFile
public InputFile toInputFile()
Description copied from interface:OutputFile
Return anInputFile
for the location of this output file.- Specified by:
toInputFile
in interfaceOutputFile
- Returns:
- an input file for the location of this output file
-
nativeCryptoParameters
public NativeFileCryptoParameters nativeCryptoParameters()
- Specified by:
nativeCryptoParameters
in interfaceNativelyEncryptedFile
-
setNativeCryptoParameters
public void setNativeCryptoParameters(NativeFileCryptoParameters nativeCryptoParameters)
- Specified by:
setNativeCryptoParameters
in interfaceNativelyEncryptedFile
-
location
public java.lang.String location()
-
awsProperties
public AwsProperties awsProperties()
-
metrics
protected MetricsContext metrics()
-
exists
public boolean exists()
Note: this may be stale if file was deleted since metadata is cached for size/existence checks.- Returns:
- flag
-
getObjectMetadata
protected software.amazon.awssdk.services.s3.model.HeadObjectResponse getObjectMetadata() throws software.amazon.awssdk.services.s3.model.S3Exception
- Throws:
software.amazon.awssdk.services.s3.model.S3Exception
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-