
io.github.mentegy.s3.channels.builder.S3ReadableObjectChannelBuilder Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of s3-channels Show documentation
Show all versions of s3-channels Show documentation
Java NIO Channels implementations for S3
The newest version!
package io.github.mentegy.s3.channels.builder;
import com.amazonaws.services.s3.AmazonS3;
import io.github.mentegy.s3.channels.S3ReadableObjectChannel;
import io.github.mentegy.s3.channels.impl.S3BufferedRangedReadObjectChannel;
import io.github.mentegy.s3.channels.impl.S3RangedReadObjectChannel;
public class S3ReadableObjectChannelBuilder {
private String key;
private String bucket;
private AmazonS3 amazonS3;
private Integer bufferSize;
public S3ReadableObjectChannel build() {
if (bucket == null) {
throw new IllegalArgumentException("S3 bucket must be set");
}
if (key == null) {
throw new IllegalArgumentException("Object key must be set");
}
if (amazonS3 == null) {
throw new IllegalArgumentException("Amazon s3 must be set");
}
return bufferSize == null ?
new S3RangedReadObjectChannel(key, bucket, amazonS3) :
new S3BufferedRangedReadObjectChannel(key, bucket, amazonS3, bufferSize);
}
/**
* S3 object key
*/
public S3ReadableObjectChannelBuilder key(String key) {
this.key = key;
return this;
}
/**
* S3 bucket
*/
public S3ReadableObjectChannelBuilder bucket(String bucket) {
this.bucket = bucket;
return this;
}
/**
* Amazon S3 client
*/
public S3ReadableObjectChannelBuilder amazonS3(AmazonS3 amazonS3) {
this.amazonS3 = amazonS3;
return this;
}
public S3ReadableObjectChannelBuilder buffered(Integer bufferSize) {
this.bufferSize = bufferSize;
return this;
}
public String key() {
return key;
}
public String bucket() {
return bucket;
}
public AmazonS3 amazonS3() {
return amazonS3;
}
public boolean isBuffered() {
return bufferSize != null;
}
public Integer bufferSize() {
return bufferSize;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy