List of usage examples for com.amazonaws.services.s3.model GetObjectRequest setRange
public void setRange(long start)
Sets the optional inclusive start range within the desired object that the rest of which will be downloaded by this request.
From source file:alluxio.underfs.s3a.S3AInputStream.java
License:Apache License
/** * Opens a new stream at mPos if the wrapped stream mIn is null. *//* w w w. jav a 2s . c om*/ private void openStream() { if (mIn != null) { // stream is already open return; } GetObjectRequest getReq = new GetObjectRequest(mBucketName, mKey); getReq.setRange(mPos); mIn = mClient.getObject(getReq).getObjectContent(); }
From source file:io.druid.firehose.s3.StaticS3FirehoseFactory.java
License:Apache License
@Override protected InputStream openObjectStream(S3ObjectSummary object, long start) throws IOException { final GetObjectRequest request = new GetObjectRequest(object.getBucketName(), object.getKey()); request.setRange(start); try {/*from www.ja v a 2 s . c om*/ 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.getBucketName(), object.getKey(), start); } return s3Object.getObjectContent(); } catch (AmazonS3Exception e) { throw new IOException(e); } }
From source file:org.apache.druid.firehose.s3.StaticS3FirehoseFactory.java
License:Apache License
@Override protected InputStream openObjectStream(URI object, long start) throws IOException { final String bucket = object.getAuthority(); final String key = S3Utils.extractS3Key(object); final GetObjectRequest request = new GetObjectRequest(bucket, key); request.setRange(start); try {// w w w . j av a 2 s.c o m 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]", bucket, key, start); } return s3Object.getObjectContent(); } catch (AmazonS3Exception e) { throw new IOException(e); } }
From source file:org.duracloud.s3storage.S3StorageProvider.java
License:Apache License
/** * {@inheritDoc}/*from www. ja v a 2 s .c o m*/ */ public RetrievedContent getContent(String spaceId, String contentId, String range) { log.debug("getContent(" + spaceId + ", " + contentId + ", " + range + ")"); // Will throw if bucket does not exist String bucketName = getBucketName(spaceId); try { GetObjectRequest getRequest = new GetObjectRequest(bucketName, contentId); if (StringUtils.isNotEmpty(range)) { ContentByteRange byteRange = new ContentByteRange(range); if (null == byteRange.getRangeStart()) { // While this should be a valid setting, it is not currently // supported due to a limitation of the AWS S3 client // see: https://github.com/aws/aws-sdk-java/issues/1551 throw new IllegalArgumentException(byteRange.getUsage(range)); } else if (null == byteRange.getRangeEnd()) { getRequest.setRange(byteRange.getRangeStart()); } else { getRequest.setRange(byteRange.getRangeStart(), byteRange.getRangeEnd()); } } S3Object contentItem = s3Client.getObject(getRequest); RetrievedContent retrievedContent = new RetrievedContent(); retrievedContent.setContentStream(contentItem.getObjectContent()); retrievedContent.setContentProperties(prepContentProperties(contentItem.getObjectMetadata())); return retrievedContent; } catch (AmazonClientException e) { throwIfContentNotExist(bucketName, contentId); String err = "Could not retrieve content " + contentId + " in S3 bucket " + bucketName + " due to error: " + e.getMessage(); throw new StorageException(err, e, RETRY); } }