@SuppressWarnings("unchecked") public T withIfMatch(String ifMatch) { setIfMatch(ifMatch); return (T) this; }
@SuppressWarnings("unchecked") public T withIfModifiedSince(Date ifModifiedSince) { setIfModifiedSince(ifModifiedSince); return (T) this; }
@SuppressWarnings("unchecked") public T withIfNoneMatch(String ifNoneMatch) { setIfNoneMatch(ifNoneMatch); return (T) this; }
@Override public <T> T readObject(String bucketName, String key, String versionId, Class<T> objectType) { GetObjectResult<T> result = getObject(new GetObjectRequest(bucketName, key).withVersionId(versionId), objectType); return result == null ? null : result.getObject(); }
@Override public InputStream readObjectStream(String bucketName, String key, Range range) { GetObjectResult<InputStream> result = getObject(new GetObjectRequest(bucketName, key).withRange(range), InputStream.class); return result == null ? null : result.getObject(); }
@Override public <T> GetObjectResult<T> getObject(GetObjectRequest request, Class<T> objectType) { if (request.getRange() != null) throw new UnsupportedOperationException(PARTIAL_READ_MSG); // activate codec filter request.property(RestUtil.PROPERTY_DECODE_ENTITY, Boolean.TRUE); return super.getObject(request, objectType); }
@Override public GetObjectResult<InputStream> getObject(String bucketName, String key) { return getObject(new GetObjectRequest(bucketName, key), InputStream.class); }
@SuppressWarnings("unchecked") public T withRange(Range range) { setRange(range); return (T) this; }
@SuppressWarnings("unchecked") public T withVersionId(String versionId) { setVersionId(versionId); return (T) this; }
@SuppressWarnings("unchecked") public T withIfUnmodifiedSince(Date ifUnmodifiedSince) { setIfUnmodifiedSince(ifUnmodifiedSince); return (T) this; }
@Override public InputStream call() { GetObjectRequest request = new GetObjectRequest(config.getBucketName(), key).withVersionId(versionId); return s3.getObject(request, InputStream.class).getObject(); } }, OPERATION_OPEN_DATA_STREAM);
@Override public <T> GetObjectResult<T> getObject(GetObjectRequest request, Class<T> objectType) { try { if (request.getRange() == null) { // enable checksum of the object (verification is handled in interceptor) request.property(RestUtil.PROPERTY_VERIFY_READ_CHECKSUM, Boolean.TRUE); } GetObjectResult<T> result = new GetObjectResult<T>(); ClientResponse response = executeRequest(client, request); fillResponseEntity(result, response); result.setObject(response.getEntity(objectType)); return result; } catch (S3Exception e) { // a 304 or 412 means If-* headers were used and a condition failed if (e.getHttpCode() == 304 || e.getHttpCode() == 412) return null; throw e; } }
@Override public <T> T readObject(String bucketName, String key, Class<T> objectType) { GetObjectResult<T> result = getObject(new GetObjectRequest(bucketName, key), objectType); return result == null ? null : result.getObject(); }