use of software.amazon.awssdk.services.s3.model.GetObjectRequest in project beam by apache.
the class S3ReadableSeekableByteChannel method read.
@Override
public int read(ByteBuffer destinationBuffer) throws IOException {
if (!isOpen()) {
throw new ClosedChannelException();
}
if (!destinationBuffer.hasRemaining()) {
return 0;
}
if (position == contentLength) {
return -1;
}
if (s3Object == null) {
GetObjectRequest request = new GetObjectRequest(path.getBucket(), path.getKey());
request.setSSECustomerKey(config.getSSECustomerKey());
if (position > 0) {
request.setRange(position, contentLength);
}
try {
s3Object = amazonS3.getObject(request);
} catch (AmazonClientException e) {
throw new IOException(e);
}
s3ObjectContentChannel = Channels.newChannel(new BufferedInputStream(s3Object.getObjectContent(), 1024 * 1024));
}
int totalBytesRead = 0;
int bytesRead = 0;
do {
totalBytesRead += bytesRead;
try {
bytesRead = s3ObjectContentChannel.read(destinationBuffer);
} catch (AmazonClientException e) {
// TODO replace all catch AmazonServiceException with client exception
throw new IOException(e);
}
} while (bytesRead > 0);
position += totalBytesRead;
return totalBytesRead;
}
use of software.amazon.awssdk.services.s3.model.GetObjectRequest in project beam by apache.
the class S3ReadableSeekableByteChannel method read.
@Override
public int read(ByteBuffer destinationBuffer) throws IOException {
if (!isOpen()) {
throw new ClosedChannelException();
}
if (!destinationBuffer.hasRemaining()) {
return 0;
}
if (position == contentLength) {
return -1;
}
if (s3ResponseInputStream == null) {
GetObjectRequest.Builder builder = GetObjectRequest.builder().bucket(path.getBucket()).key(path.getKey()).sseCustomerKey(config.getSSECustomerKey().getKey()).sseCustomerAlgorithm(config.getSSECustomerKey().getAlgorithm());
if (position > 0) {
builder.range(String.format("bytes=%s-%s", position, contentLength));
}
GetObjectRequest request = builder.build();
try {
s3ResponseInputStream = s3Client.getObject(request);
} catch (SdkClientException e) {
throw new IOException(e);
}
s3ObjectContentChannel = Channels.newChannel(new BufferedInputStream(s3ResponseInputStream, 1024 * 1024));
}
int totalBytesRead = 0;
int bytesRead = 0;
do {
totalBytesRead += bytesRead;
try {
bytesRead = s3ObjectContentChannel.read(destinationBuffer);
} catch (SdkServiceException e) {
throw new IOException(e);
}
} while (bytesRead > 0);
position += totalBytesRead;
return totalBytesRead;
}
use of software.amazon.awssdk.services.s3.model.GetObjectRequest in project druid by druid-io.
the class S3Entity method readFrom.
@Override
protected InputStream readFrom(long offset) throws IOException {
final GetObjectRequest request = new GetObjectRequest(object.getBucket(), object.getPath());
request.setRange(offset);
try {
final S3Object s3Object = s3Client.getObject(request);
if (s3Object == null) {
throw new ISE("Failed to get an s3 object for bucket[%s], key[%s], and start[%d]", object.getBucket(), object.getPath(), offset);
}
return s3Object.getObjectContent();
} catch (AmazonS3Exception e) {
throw new IOException(e);
}
}
use of software.amazon.awssdk.services.s3.model.GetObjectRequest in project flyway by flyway.
the class AwsS3Resource method read.
@Override
public Reader read() {
S3Client s3 = S3ClientFactory.getClient();
try {
GetObjectRequest.Builder builder = GetObjectRequest.builder().bucket(bucketName).key(s3ObjectSummary.key());
GetObjectRequest request = builder.build();
ResponseInputStream o = s3.getObject(request);
return Channels.newReader(Channels.newChannel(o), encoding.name());
} catch (AwsServiceException e) {
LOG.error(e.getMessage(), e);
throw new FlywayException("Failed to get object from s3: " + e.getMessage(), e);
}
}
use of software.amazon.awssdk.services.s3.model.GetObjectRequest in project aws-doc-sdk-examples by awsdocs.
the class S3ObjectOperations method main.
public static void main(String[] args) throws IOException {
final String USAGE = "\n" + "Usage:\n" + " <bucketName> <key>\n\n" + "Where:\n" + " bucketName - the Amazon S3 bucket to create.\n\n" + " key - the key to use.\n\n";
if (args.length != 2) {
System.out.println(USAGE);
System.exit(1);
}
String bucketName = args[0];
String key = args[1];
// snippet-start:[s3.java2.s3_object_operations.upload]
Region region = Region.US_WEST_2;
s3 = S3Client.builder().region(region).build();
createBucket(s3, bucketName, region);
PutObjectRequest objectRequest = PutObjectRequest.builder().bucket(bucketName).key(key).build();
s3.putObject(objectRequest, RequestBody.fromByteBuffer(getRandomByteBuffer(10_000)));
// snippet-end:[s3.java2.s3_object_operations.upload]
// Multipart upload example
String multipartKey = "multiPartKey";
multipartUpload(bucketName, multipartKey);
// snippet-start:[s3.java2.s3_object_operations.pagination]
ListObjectsV2Request listObjectsReqManual = ListObjectsV2Request.builder().bucket(bucketName).maxKeys(1).build();
boolean done = false;
while (!done) {
ListObjectsV2Response listObjResponse = s3.listObjectsV2(listObjectsReqManual);
for (S3Object content : listObjResponse.contents()) {
System.out.println(content.key());
}
if (listObjResponse.nextContinuationToken() == null) {
done = true;
}
listObjectsReqManual = listObjectsReqManual.toBuilder().continuationToken(listObjResponse.nextContinuationToken()).build();
}
// snippet-end:[s3.java2.s3_object_operations.pagination]
// snippet-start:[s3.java2.s3_object_operations.iterative]
ListObjectsV2Request listReq = ListObjectsV2Request.builder().bucket(bucketName).maxKeys(1).build();
ListObjectsV2Iterable listRes = s3.listObjectsV2Paginator(listReq);
// Process response pages
listRes.stream().flatMap(r -> r.contents().stream()).forEach(content -> System.out.println(" Key: " + content.key() + " size = " + content.size()));
// snippet-end:[s3.java2.s3_object_operations.iterative]
// snippet-start:[s3.java2.s3_object_operations.stream]
// Helper method to work with paginated collection of items directly
listRes.contents().stream().forEach(content -> System.out.println(" Key: " + content.key() + " size = " + content.size()));
// snippet-start:[s3.java2.s3_object_operations.forloop]
for (S3Object content : listRes.contents()) {
System.out.println(" Key: " + content.key() + " size = " + content.size());
}
// snippet-end:[s3.java2.s3_object_operations.forloop]
// snippet-start:[s3.java2.s3_object_operations.download]
GetObjectRequest getObjectRequest = GetObjectRequest.builder().bucket(bucketName).key(key).build();
s3.getObject(getObjectRequest);
// snippet-end:[s3.java2.s3_object_operations.download]
// snippet-start:[s3.java2.s3_object_operations.delete]
DeleteObjectRequest deleteObjectRequest = DeleteObjectRequest.builder().bucket(bucketName).key(key).build();
s3.deleteObject(deleteObjectRequest);
// snippet-end:[s3.java2.s3_object_operations.delete]
// Delete an object
deleteObjectRequest = DeleteObjectRequest.builder().bucket(bucketName).key(multipartKey).build();
s3.deleteObject(deleteObjectRequest);
deleteBucket(s3, bucketName);
System.out.println("Done");
}
Aggregations