/** * The S3 Bucket. */ public SelectObjectContentRequest withBucketName(String bucketName) { setBucketName(bucketName); return this; }
/** * The expression that is used to query the object. */ public SelectObjectContentRequest withExpression(String expression) { setExpression(expression); return this; }
/** * The type of the provided expression (e.g., SQL). */ public SelectObjectContentRequest withExpressionType(String expressionType) { setExpressionType(expressionType); return this; }
private static SelectObjectContentRequest generateBaseCSVRequest(String bucket, String key, String query) { SelectObjectContentRequest request = new SelectObjectContentRequest(); request.setBucketName(bucket); request.setKey(key); request.setExpression(query); request.setExpressionType(ExpressionType.SQL); InputSerialization inputSerialization = new InputSerialization(); inputSerialization.setCsv(new CSVInput()); inputSerialization.setCompressionType(CompressionType.NONE); request.setInputSerialization(inputSerialization); OutputSerialization outputSerialization = new OutputSerialization(); outputSerialization.setCsv(new CSVOutput()); request.setOutputSerialization(outputSerialization); return request; } }
@Override public SelectObjectContentResult selectObjectContent(SelectObjectContentRequest selectRequest) throws AmazonServiceException, SdkClientException { selectRequest = beforeClientExecution(selectRequest); rejectNull(selectRequest, "The request parameter must be specified"); rejectNull(selectRequest.getBucketName(), "The bucket name parameter must be specified when selecting object content."); rejectNull(selectRequest.getKey(), "The key parameter must be specified when selecting object content."); Request<SelectObjectContentRequest> request = createRequest(selectRequest.getBucketName(), selectRequest.getKey(), selectRequest, HttpMethodName.POST); request.addParameter("select", null); request.addParameter("select-type", "2"); populateSSE_C(request, selectRequest.getSSECustomerKey()); setContent(request, RequestXmlFactory.convertToXmlByteArray(selectRequest), ContentType.APPLICATION_XML.toString(), true); S3Object result = invoke(request, new S3ObjectResponseHandler(), selectRequest.getBucketName(), selectRequest.getKey()); // Hold a reference to this client while the InputStream is still // around - otherwise a finalizer in the HttpClient may reset the // underlying TCP connection out from under us. SdkFilterInputStream resultStream = new ServiceClientHolderInputStream(result.getObjectContent(), this); return new SelectObjectContentResult().withPayload(new SelectObjectContentEventStream(resultStream)); }
/** * The Object Key. */ public SelectObjectContentRequest withKey(String key) { setKey(key); return this; }
/** * Describes the format of the data that you want Amazon S3 to return in response. */ public SelectObjectContentRequest withOutputSerialization(OutputSerialization outputSerialization) { setOutputSerialization(outputSerialization); return this; }
/** * Describes the format of the data in the object that is being queried. */ public SelectObjectContentRequest withInputSerialization(InputSerialization inputSerialization) { setInputSerialization(inputSerialization); return this; }
public String getKeyName() { return selectObjectRequest.getKey(); }
public String getBucketName() { return selectObjectRequest.getBucketName(); }
@Override public SelectObjectContentRequest buildSelectObjectRequest(Properties schema, String query, Path path) SelectObjectContentRequest selectObjectRequest = new SelectObjectContentRequest(); URI uri = path.toUri(); selectObjectRequest.setBucketName(PrestoS3FileSystem.getBucketName(uri)); selectObjectRequest.setKey(PrestoS3FileSystem.keyFromPath(path)); selectObjectRequest.setExpression(query); selectObjectRequest.setExpressionType(ExpressionType.SQL); selectObjectRequest.setInputSerialization(selectObjectInputSerialization); selectObjectCSVOutputSerialization.setQuoteEscapeCharacter(escapeChar); selectObjectOutputSerialization.setCsv(selectObjectCSVOutputSerialization); selectObjectRequest.setOutputSerialization(selectObjectOutputSerialization);
public String getKeyName() { return selectObjectRequest.getKey(); }
public String getBucketName() { return selectObjectRequest.getBucketName(); }
@Override public SelectObjectContentRequest buildSelectObjectRequest(Properties schema, String query, Path path) SelectObjectContentRequest selectObjectRequest = new SelectObjectContentRequest(); URI uri = path.toUri(); selectObjectRequest.setBucketName(PrestoS3FileSystem.getBucketName(uri)); selectObjectRequest.setKey(PrestoS3FileSystem.keyFromPath(path)); selectObjectRequest.setExpression(query); selectObjectRequest.setExpressionType(ExpressionType.SQL); selectObjectRequest.setInputSerialization(selectObjectInputSerialization); selectObjectCSVOutputSerialization.setQuoteEscapeCharacter(escapeChar); selectObjectOutputSerialization.setCsv(selectObjectCSVOutputSerialization); selectObjectRequest.setOutputSerialization(selectObjectOutputSerialization);
/** * The type of the provided expression (e.g., SQL). */ public SelectObjectContentRequest withExpressionType(ExpressionType expressionType) { setExpressionType(expressionType); return this; }
/** * The type of the provided expression (e.g., SQL). */ public void setExpressionType(ExpressionType expressionType) { setExpressionType(expressionType == null ? null : expressionType.toString()); }