Example usage for com.amazonaws.services.s3.model GetObjectRequest setRange

List of usage examples for com.amazonaws.services.s3.model GetObjectRequest setRange

Introduction

In this page you can find the example usage for com.amazonaws.services.s3.model GetObjectRequest setRange.

Prototype

public void setRange(long start) 

Source Link

Document

Sets the optional inclusive start range within the desired object that the rest of which will be downloaded by this request.

Usage

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);
    }
}