This is an automated email from the ASF dual-hosted git repository. acosentino pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel.git
commit ab8eba640aa5b6f5b2486451e71100acccdc9e5b Author: Andrea Cosentino <anco...@gmail.com> AuthorDate: Thu Apr 8 08:03:06 2021 +0200 CAMEL-16469 - Camel-AWS2-S3 - Streaming upload: restart from the last index when using the progressive naming strategy --- .../camel/catalog/docs/aws2-s3-component.adoc | 18 +++---- .../aws2/s3/AWS2S3ComponentConfigurer.java | 6 +++ .../aws2/s3/AWS2S3EndpointConfigurer.java | 6 +++ .../aws2/s3/AWS2S3EndpointUriFactory.java | 3 +- .../apache/camel/component/aws2/s3/aws2-s3.json | 14 +++--- .../src/main/docs/aws2-s3-component.adoc | 18 +++---- .../dsl/Aws2S3ComponentBuilderFactory.java | 24 ++++++++-- .../endpoint/dsl/AWS2S3EndpointBuilderFactory.java | 55 +++++++++++++++++++--- .../modules/ROOT/pages/aws2-s3-component.adoc | 18 +++---- 9 files changed, 122 insertions(+), 40 deletions(-) diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-s3-component.adoc b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-s3-component.adoc index b4dd75b..188dab6 100644 --- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-s3-component.adoc +++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/docs/aws2-s3-component.adoc @@ -47,7 +47,7 @@ from("aws2-s3://helloBucket?accessKey=yourAccessKey&secretKey=yourSecretKey&pref // component options: START -The AWS 2 S3 Storage Service component supports 48 options, which are listed below. +The AWS 2 S3 Storage Service component supports 49 options, which are listed below. @@ -84,15 +84,16 @@ The AWS 2 S3 Storage Service component supports 48 options, which are listed bel | *moveAfterRead* (consumer) | Move objects from S3 bucket to a different bucket after they have been retrieved. To accomplish the operation the destinationBucket option must be set. The copy bucket operation is only performed if the Exchange is committed. If a rollback occurs, the object is not moved. | false | boolean | *prefix* (consumer) | The prefix which is used in the com.amazonaws.services.s3.model.ListObjectsRequest to only consume objects we are interested in. | | String | *autocloseBody* (consumer) | If this option is true and includeBody is false, then the S3Object.close() method will be called on exchange completion. This option is strongly related to includeBody option. In case of setting includeBody to false and autocloseBody to false, it will be up to the caller to close the S3Object stream. Setting autocloseBody to true, will close the S3Object stream automatically. | true | boolean -| *batchMessageNumber* (producer) | The number of messages composing a batch in stream mode | 10 | int -| *batchSize* (producer) | The batch size (in bytes) in stream mode | 1000000 | int +| *batchMessageNumber* (producer) | The number of messages composing a batch in streaming upload mode | 10 | int +| *batchSize* (producer) | The batch size (in bytes) in streaming upload mode | 1000000 | int | *deleteAfterWrite* (producer) | Delete file object after the S3 file has been uploaded | false | boolean | *keyName* (producer) | Setting the key name for an element in the bucket through endpoint parameter | | String | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...] | *multiPartUpload* (producer) | If it is true, camel will upload the file with multi part format, the part size is decided by the option of partSize | false | boolean -| *namingStrategy* (producer) | The naming strategy to use in stream mode. There are 2 enums and the value can be one of: progressive, random | progressive | AWSS3NamingStrategyEnum +| *namingStrategy* (producer) | The naming strategy to use in streaming upload mode. There are 2 enums and the value can be one of: progressive, random | progressive | AWSS3NamingStrategyEnum | *operation* (producer) | The operation to do in case the user don't want to do only an upload. There are 7 enums and the value can be one of: copyObject, listObjects, deleteObject, deleteBucket, listBuckets, getObject, getObjectRange | | AWS2S3Operations | *partSize* (producer) | Setup the partSize which is used in multi part upload, the default size is 25M. | 26214400 | long +| *restartingPolicy* (producer) | The restarting policy to use in streaming upload mode. There are 2 enums and the value can be one of: override, lastPart | override | AWSS3RestartingPolicyEnum | *storageClass* (producer) | The storage class to set in the com.amazonaws.services.s3.model.PutObjectRequest request. | | String | *streamingUploadMode* (producer) | When stream mode is true the upload to bucket will be done in streaming | false | boolean | *streamingUploadTimeout* (producer) | While streaming upload mode is true, this option set the timeout to complete upload | | long @@ -134,7 +135,7 @@ with the following path and query parameters: |=== -=== Query Parameters (66 parameters): +=== Query Parameters (67 parameters): [width="100%",cols="2,5,^1,2",options="header"] @@ -175,15 +176,16 @@ with the following path and query parameters: | *exceptionHandler* (consumer) | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. | | ExceptionHandler | *exchangePattern* (consumer) | Sets the exchange pattern when the consumer creates an exchange. There are 3 enums and the value can be one of: InOnly, InOut, InOptionalOut | | ExchangePattern | *pollStrategy* (consumer) | A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your custom implementation to control error handling usually occurred during the poll operation before an Exchange have been created and being routed in Camel. | | PollingConsumerPollStrategy -| *batchMessageNumber* (producer) | The number of messages composing a batch in stream mode | 10 | int -| *batchSize* (producer) | The batch size (in bytes) in stream mode | 1000000 | int +| *batchMessageNumber* (producer) | The number of messages composing a batch in streaming upload mode | 10 | int +| *batchSize* (producer) | The batch size (in bytes) in streaming upload mode | 1000000 | int | *deleteAfterWrite* (producer) | Delete file object after the S3 file has been uploaded | false | boolean | *keyName* (producer) | Setting the key name for an element in the bucket through endpoint parameter | | String | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...] | *multiPartUpload* (producer) | If it is true, camel will upload the file with multi part format, the part size is decided by the option of partSize | false | boolean -| *namingStrategy* (producer) | The naming strategy to use in stream mode. There are 2 enums and the value can be one of: progressive, random | progressive | AWSS3NamingStrategyEnum +| *namingStrategy* (producer) | The naming strategy to use in streaming upload mode. There are 2 enums and the value can be one of: progressive, random | progressive | AWSS3NamingStrategyEnum | *operation* (producer) | The operation to do in case the user don't want to do only an upload. There are 7 enums and the value can be one of: copyObject, listObjects, deleteObject, deleteBucket, listBuckets, getObject, getObjectRange | | AWS2S3Operations | *partSize* (producer) | Setup the partSize which is used in multi part upload, the default size is 25M. | 26214400 | long +| *restartingPolicy* (producer) | The restarting policy to use in streaming upload mode. There are 2 enums and the value can be one of: override, lastPart | override | AWSS3RestartingPolicyEnum | *storageClass* (producer) | The storage class to set in the com.amazonaws.services.s3.model.PutObjectRequest request. | | String | *streamingUploadMode* (producer) | When stream mode is true the upload to bucket will be done in streaming | false | boolean | *streamingUploadTimeout* (producer) | While streaming upload mode is true, this option set the timeout to complete upload | | long diff --git a/components/camel-aws/camel-aws2-s3/src/generated/java/org/apache/camel/component/aws2/s3/AWS2S3ComponentConfigurer.java b/components/camel-aws/camel-aws2-s3/src/generated/java/org/apache/camel/component/aws2/s3/AWS2S3ComponentConfigurer.java index 4920a0a..9ff15ea 100644 --- a/components/camel-aws/camel-aws2-s3/src/generated/java/org/apache/camel/component/aws2/s3/AWS2S3ComponentConfigurer.java +++ b/components/camel-aws/camel-aws2-s3/src/generated/java/org/apache/camel/component/aws2/s3/AWS2S3ComponentConfigurer.java @@ -100,6 +100,8 @@ public class AWS2S3ComponentConfigurer extends PropertyConfigurerSupport impleme case "proxyprotocol": case "proxyProtocol": getOrCreateConfiguration(target).setProxyProtocol(property(camelContext, software.amazon.awssdk.core.Protocol.class, value)); return true; case "region": getOrCreateConfiguration(target).setRegion(property(camelContext, java.lang.String.class, value)); return true; + case "restartingpolicy": + case "restartingPolicy": getOrCreateConfiguration(target).setRestartingPolicy(property(camelContext, org.apache.camel.component.aws2.s3.stream.AWSS3RestartingPolicyEnum.class, value)); return true; case "secretkey": case "secretKey": getOrCreateConfiguration(target).setSecretKey(property(camelContext, java.lang.String.class, value)); return true; case "storageclass": @@ -202,6 +204,8 @@ public class AWS2S3ComponentConfigurer extends PropertyConfigurerSupport impleme case "proxyprotocol": case "proxyProtocol": return software.amazon.awssdk.core.Protocol.class; case "region": return java.lang.String.class; + case "restartingpolicy": + case "restartingPolicy": return org.apache.camel.component.aws2.s3.stream.AWSS3RestartingPolicyEnum.class; case "secretkey": case "secretKey": return java.lang.String.class; case "storageclass": @@ -300,6 +304,8 @@ public class AWS2S3ComponentConfigurer extends PropertyConfigurerSupport impleme case "proxyprotocol": case "proxyProtocol": return getOrCreateConfiguration(target).getProxyProtocol(); case "region": return getOrCreateConfiguration(target).getRegion(); + case "restartingpolicy": + case "restartingPolicy": return getOrCreateConfiguration(target).getRestartingPolicy(); case "secretkey": case "secretKey": return getOrCreateConfiguration(target).getSecretKey(); case "storageclass": diff --git a/components/camel-aws/camel-aws2-s3/src/generated/java/org/apache/camel/component/aws2/s3/AWS2S3EndpointConfigurer.java b/components/camel-aws/camel-aws2-s3/src/generated/java/org/apache/camel/component/aws2/s3/AWS2S3EndpointConfigurer.java index 9b57190..8f689c7 100644 --- a/components/camel-aws/camel-aws2-s3/src/generated/java/org/apache/camel/component/aws2/s3/AWS2S3EndpointConfigurer.java +++ b/components/camel-aws/camel-aws2-s3/src/generated/java/org/apache/camel/component/aws2/s3/AWS2S3EndpointConfigurer.java @@ -112,6 +112,8 @@ public class AWS2S3EndpointConfigurer extends PropertyConfigurerSupport implemen case "region": target.getConfiguration().setRegion(property(camelContext, java.lang.String.class, value)); return true; case "repeatcount": case "repeatCount": target.setRepeatCount(property(camelContext, long.class, value)); return true; + case "restartingpolicy": + case "restartingPolicy": target.getConfiguration().setRestartingPolicy(property(camelContext, org.apache.camel.component.aws2.s3.stream.AWSS3RestartingPolicyEnum.class, value)); return true; case "runlogginglevel": case "runLoggingLevel": target.setRunLoggingLevel(property(camelContext, org.apache.camel.LoggingLevel.class, value)); return true; case "scheduledexecutorservice": @@ -248,6 +250,8 @@ public class AWS2S3EndpointConfigurer extends PropertyConfigurerSupport implemen case "region": return java.lang.String.class; case "repeatcount": case "repeatCount": return long.class; + case "restartingpolicy": + case "restartingPolicy": return org.apache.camel.component.aws2.s3.stream.AWSS3RestartingPolicyEnum.class; case "runlogginglevel": case "runLoggingLevel": return org.apache.camel.LoggingLevel.class; case "scheduledexecutorservice": @@ -380,6 +384,8 @@ public class AWS2S3EndpointConfigurer extends PropertyConfigurerSupport implemen case "region": return target.getConfiguration().getRegion(); case "repeatcount": case "repeatCount": return target.getRepeatCount(); + case "restartingpolicy": + case "restartingPolicy": return target.getConfiguration().getRestartingPolicy(); case "runlogginglevel": case "runLoggingLevel": return target.getRunLoggingLevel(); case "scheduledexecutorservice": diff --git a/components/camel-aws/camel-aws2-s3/src/generated/java/org/apache/camel/component/aws2/s3/AWS2S3EndpointUriFactory.java b/components/camel-aws/camel-aws2-s3/src/generated/java/org/apache/camel/component/aws2/s3/AWS2S3EndpointUriFactory.java index 6eb9073..6debae3 100644 --- a/components/camel-aws/camel-aws2-s3/src/generated/java/org/apache/camel/component/aws2/s3/AWS2S3EndpointUriFactory.java +++ b/components/camel-aws/camel-aws2-s3/src/generated/java/org/apache/camel/component/aws2/s3/AWS2S3EndpointUriFactory.java @@ -20,7 +20,7 @@ public class AWS2S3EndpointUriFactory extends org.apache.camel.support.component private static final Set<String> PROPERTY_NAMES; private static final Set<String> SECRET_PROPERTY_NAMES; static { - Set<String> props = new HashSet<>(67); + Set<String> props = new HashSet<>(68); props.add("customerAlgorithm"); props.add("fileName"); props.add("batchMessageNumber"); @@ -57,6 +57,7 @@ public class AWS2S3EndpointUriFactory extends org.apache.camel.support.component props.add("deleteAfterWrite"); props.add("region"); props.add("exceptionHandler"); + props.add("restartingPolicy"); props.add("backoffMultiplier"); props.add("destinationBucket"); props.add("amazonS3Presigner"); diff --git a/components/camel-aws/camel-aws2-s3/src/generated/resources/org/apache/camel/component/aws2/s3/aws2-s3.json b/components/camel-aws/camel-aws2-s3/src/generated/resources/org/apache/camel/component/aws2/s3/aws2-s3.json index 584eec8..dd7871e 100644 --- a/components/camel-aws/camel-aws2-s3/src/generated/resources/org/apache/camel/component/aws2/s3/aws2-s3.json +++ b/components/camel-aws/camel-aws2-s3/src/generated/resources/org/apache/camel/component/aws2/s3/aws2-s3.json @@ -52,15 +52,16 @@ "moveAfterRead": { "kind": "property", "displayName": "Move After Read", "group": "consumer", "label": "consumer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "Move objects from S3 bucket to a different bucket after they have been retrieved. To accomplish [...] "prefix": { "kind": "property", "displayName": "Prefix", "group": "consumer", "label": "consumer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "The prefix which is used in the com.amazonaws.services.s3.model.ListObjectsRequest to only consume objects we are interested in." }, "autocloseBody": { "kind": "property", "displayName": "Autoclose Body", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": true, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "If this option is true and includeBody is false, then the S3Object.close() met [...] - "batchMessageNumber": { "kind": "property", "displayName": "Batch Message Number", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 10, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "The number of messages composing a batch in stream mode" }, - "batchSize": { "kind": "property", "displayName": "Batch Size", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000000, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "The batch size (in bytes) in stream mode" }, + "batchMessageNumber": { "kind": "property", "displayName": "Batch Message Number", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 10, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "The number of messages composing a batch in streaming upload mode" }, + "batchSize": { "kind": "property", "displayName": "Batch Size", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000000, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "The batch size (in bytes) in streaming upload mode" }, "deleteAfterWrite": { "kind": "property", "displayName": "Delete After Write", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "Delete file object after the S3 file has been uploaded" }, "keyName": { "kind": "property", "displayName": "Key Name", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "Setting the key name for an element in the bucket through endpoint parameter" }, "lazyStartProducer": { "kind": "property", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during star [...] "multiPartUpload": { "kind": "property", "displayName": "Multi Part Upload", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "If it is true, camel will upload the file with multi part format, the part size is decided b [...] - "namingStrategy": { "kind": "property", "displayName": "Naming Strategy", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.s3.stream.AWSS3NamingStrategyEnum", "enum": [ "progressive", "random" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "progressive", "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "descript [...] + "namingStrategy": { "kind": "property", "displayName": "Naming Strategy", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.s3.stream.AWSS3NamingStrategyEnum", "enum": [ "progressive", "random" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "progressive", "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "descript [...] "operation": { "kind": "property", "displayName": "Operation", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.s3.AWS2S3Operations", "enum": [ "copyObject", "listObjects", "deleteObject", "deleteBucket", "listBuckets", "getObject", "getObjectRange" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": [...] "partSize": { "kind": "property", "displayName": "Part Size", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 26214400, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "Setup the partSize which is used in multi part upload, the default size is 25M." }, + "restartingPolicy": { "kind": "property", "displayName": "Restarting Policy", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.s3.stream.AWSS3RestartingPolicyEnum", "enum": [ "override", "lastPart" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "override", "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "descri [...] "storageClass": { "kind": "property", "displayName": "Storage Class", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "The storage class to set in the com.amazonaws.services.s3.model.PutObjectRequest request." }, "streamingUploadMode": { "kind": "property", "displayName": "Streaming Upload Mode", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "When stream mode is true the upload to bucket will be done in streaming" }, "streamingUploadTimeout": { "kind": "property", "displayName": "Streaming Upload Timeout", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "While streaming upload mode is true, this option set the timeout to complete upload" }, @@ -108,15 +109,16 @@ "exceptionHandler": { "kind": "parameter", "displayName": "Exception Handler", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.ExceptionHandler", "optionalPrefix": "consumer.", "deprecated": false, "autowired": false, "secret": false, "description": "To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the con [...] "exchangePattern": { "kind": "parameter", "displayName": "Exchange Pattern", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.ExchangePattern", "enum": [ "InOnly", "InOut", "InOptionalOut" ], "deprecated": false, "autowired": false, "secret": false, "description": "Sets the exchange pattern when the consumer creates an exchange." }, "pollStrategy": { "kind": "parameter", "displayName": "Poll Strategy", "group": "consumer (advanced)", "label": "consumer,advanced", "required": false, "type": "object", "javaType": "org.apache.camel.spi.PollingConsumerPollStrategy", "deprecated": false, "autowired": false, "secret": false, "description": "A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your custom implementation to control error handling usually occurred during the poll operation [...] - "batchMessageNumber": { "kind": "parameter", "displayName": "Batch Message Number", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 10, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "The number of messages composing a batch in stream mode" }, - "batchSize": { "kind": "parameter", "displayName": "Batch Size", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000000, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "The batch size (in bytes) in stream mode" }, + "batchMessageNumber": { "kind": "parameter", "displayName": "Batch Message Number", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 10, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "The number of messages composing a batch in streaming upload mode" }, + "batchSize": { "kind": "parameter", "displayName": "Batch Size", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "int", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 1000000, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "The batch size (in bytes) in streaming upload mode" }, "deleteAfterWrite": { "kind": "parameter", "displayName": "Delete After Write", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "Delete file object after the S3 file has been uploaded" }, "keyName": { "kind": "parameter", "displayName": "Key Name", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "Setting the key name for an element in the bucket through endpoint parameter" }, "lazyStartProducer": { "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during sta [...] "multiPartUpload": { "kind": "parameter", "displayName": "Multi Part Upload", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "If it is true, camel will upload the file with multi part format, the part size is decided [...] - "namingStrategy": { "kind": "parameter", "displayName": "Naming Strategy", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.s3.stream.AWSS3NamingStrategyEnum", "enum": [ "progressive", "random" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "progressive", "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "descrip [...] + "namingStrategy": { "kind": "parameter", "displayName": "Naming Strategy", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.s3.stream.AWSS3NamingStrategyEnum", "enum": [ "progressive", "random" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "progressive", "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "descrip [...] "operation": { "kind": "parameter", "displayName": "Operation", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.s3.AWS2S3Operations", "enum": [ "copyObject", "listObjects", "deleteObject", "deleteBucket", "listBuckets", "getObject", "getObjectRange" ], "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": [...] "partSize": { "kind": "parameter", "displayName": "Part Size", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "defaultValue": 26214400, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "Setup the partSize which is used in multi part upload, the default size is 25M." }, + "restartingPolicy": { "kind": "parameter", "displayName": "Restarting Policy", "group": "producer", "label": "producer", "required": false, "type": "object", "javaType": "org.apache.camel.component.aws2.s3.stream.AWSS3RestartingPolicyEnum", "enum": [ "override", "lastPart" ], "deprecated": false, "autowired": false, "secret": false, "defaultValue": "override", "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "descr [...] "storageClass": { "kind": "parameter", "displayName": "Storage Class", "group": "producer", "label": "producer", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "The storage class to set in the com.amazonaws.services.s3.model.PutObjectRequest request." }, "streamingUploadMode": { "kind": "parameter", "displayName": "Streaming Upload Mode", "group": "producer", "label": "producer", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "When stream mode is true the upload to bucket will be done in streaming" }, "streamingUploadTimeout": { "kind": "parameter", "displayName": "Streaming Upload Timeout", "group": "producer", "label": "producer", "required": false, "type": "integer", "javaType": "long", "deprecated": false, "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws2.s3.AWS2S3Configuration", "configurationField": "configuration", "description": "While streaming upload mode is true, this option set the timeout to complete upload" }, diff --git a/components/camel-aws/camel-aws2-s3/src/main/docs/aws2-s3-component.adoc b/components/camel-aws/camel-aws2-s3/src/main/docs/aws2-s3-component.adoc index b4dd75b..188dab6 100644 --- a/components/camel-aws/camel-aws2-s3/src/main/docs/aws2-s3-component.adoc +++ b/components/camel-aws/camel-aws2-s3/src/main/docs/aws2-s3-component.adoc @@ -47,7 +47,7 @@ from("aws2-s3://helloBucket?accessKey=yourAccessKey&secretKey=yourSecretKey&pref // component options: START -The AWS 2 S3 Storage Service component supports 48 options, which are listed below. +The AWS 2 S3 Storage Service component supports 49 options, which are listed below. @@ -84,15 +84,16 @@ The AWS 2 S3 Storage Service component supports 48 options, which are listed bel | *moveAfterRead* (consumer) | Move objects from S3 bucket to a different bucket after they have been retrieved. To accomplish the operation the destinationBucket option must be set. The copy bucket operation is only performed if the Exchange is committed. If a rollback occurs, the object is not moved. | false | boolean | *prefix* (consumer) | The prefix which is used in the com.amazonaws.services.s3.model.ListObjectsRequest to only consume objects we are interested in. | | String | *autocloseBody* (consumer) | If this option is true and includeBody is false, then the S3Object.close() method will be called on exchange completion. This option is strongly related to includeBody option. In case of setting includeBody to false and autocloseBody to false, it will be up to the caller to close the S3Object stream. Setting autocloseBody to true, will close the S3Object stream automatically. | true | boolean -| *batchMessageNumber* (producer) | The number of messages composing a batch in stream mode | 10 | int -| *batchSize* (producer) | The batch size (in bytes) in stream mode | 1000000 | int +| *batchMessageNumber* (producer) | The number of messages composing a batch in streaming upload mode | 10 | int +| *batchSize* (producer) | The batch size (in bytes) in streaming upload mode | 1000000 | int | *deleteAfterWrite* (producer) | Delete file object after the S3 file has been uploaded | false | boolean | *keyName* (producer) | Setting the key name for an element in the bucket through endpoint parameter | | String | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...] | *multiPartUpload* (producer) | If it is true, camel will upload the file with multi part format, the part size is decided by the option of partSize | false | boolean -| *namingStrategy* (producer) | The naming strategy to use in stream mode. There are 2 enums and the value can be one of: progressive, random | progressive | AWSS3NamingStrategyEnum +| *namingStrategy* (producer) | The naming strategy to use in streaming upload mode. There are 2 enums and the value can be one of: progressive, random | progressive | AWSS3NamingStrategyEnum | *operation* (producer) | The operation to do in case the user don't want to do only an upload. There are 7 enums and the value can be one of: copyObject, listObjects, deleteObject, deleteBucket, listBuckets, getObject, getObjectRange | | AWS2S3Operations | *partSize* (producer) | Setup the partSize which is used in multi part upload, the default size is 25M. | 26214400 | long +| *restartingPolicy* (producer) | The restarting policy to use in streaming upload mode. There are 2 enums and the value can be one of: override, lastPart | override | AWSS3RestartingPolicyEnum | *storageClass* (producer) | The storage class to set in the com.amazonaws.services.s3.model.PutObjectRequest request. | | String | *streamingUploadMode* (producer) | When stream mode is true the upload to bucket will be done in streaming | false | boolean | *streamingUploadTimeout* (producer) | While streaming upload mode is true, this option set the timeout to complete upload | | long @@ -134,7 +135,7 @@ with the following path and query parameters: |=== -=== Query Parameters (66 parameters): +=== Query Parameters (67 parameters): [width="100%",cols="2,5,^1,2",options="header"] @@ -175,15 +176,16 @@ with the following path and query parameters: | *exceptionHandler* (consumer) | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. | | ExceptionHandler | *exchangePattern* (consumer) | Sets the exchange pattern when the consumer creates an exchange. There are 3 enums and the value can be one of: InOnly, InOut, InOptionalOut | | ExchangePattern | *pollStrategy* (consumer) | A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your custom implementation to control error handling usually occurred during the poll operation before an Exchange have been created and being routed in Camel. | | PollingConsumerPollStrategy -| *batchMessageNumber* (producer) | The number of messages composing a batch in stream mode | 10 | int -| *batchSize* (producer) | The batch size (in bytes) in stream mode | 1000000 | int +| *batchMessageNumber* (producer) | The number of messages composing a batch in streaming upload mode | 10 | int +| *batchSize* (producer) | The batch size (in bytes) in streaming upload mode | 1000000 | int | *deleteAfterWrite* (producer) | Delete file object after the S3 file has been uploaded | false | boolean | *keyName* (producer) | Setting the key name for an element in the bucket through endpoint parameter | | String | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...] | *multiPartUpload* (producer) | If it is true, camel will upload the file with multi part format, the part size is decided by the option of partSize | false | boolean -| *namingStrategy* (producer) | The naming strategy to use in stream mode. There are 2 enums and the value can be one of: progressive, random | progressive | AWSS3NamingStrategyEnum +| *namingStrategy* (producer) | The naming strategy to use in streaming upload mode. There are 2 enums and the value can be one of: progressive, random | progressive | AWSS3NamingStrategyEnum | *operation* (producer) | The operation to do in case the user don't want to do only an upload. There are 7 enums and the value can be one of: copyObject, listObjects, deleteObject, deleteBucket, listBuckets, getObject, getObjectRange | | AWS2S3Operations | *partSize* (producer) | Setup the partSize which is used in multi part upload, the default size is 25M. | 26214400 | long +| *restartingPolicy* (producer) | The restarting policy to use in streaming upload mode. There are 2 enums and the value can be one of: override, lastPart | override | AWSS3RestartingPolicyEnum | *storageClass* (producer) | The storage class to set in the com.amazonaws.services.s3.model.PutObjectRequest request. | | String | *streamingUploadMode* (producer) | When stream mode is true the upload to bucket will be done in streaming | false | boolean | *streamingUploadTimeout* (producer) | While streaming upload mode is true, this option set the timeout to complete upload | | long diff --git a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Aws2S3ComponentBuilderFactory.java b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Aws2S3ComponentBuilderFactory.java index 9218000..8af4047 100644 --- a/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Aws2S3ComponentBuilderFactory.java +++ b/core/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/Aws2S3ComponentBuilderFactory.java @@ -557,7 +557,7 @@ public interface Aws2S3ComponentBuilderFactory { return this; } /** - * The number of messages composing a batch in stream mode. + * The number of messages composing a batch in streaming upload mode. * * The option is a: <code>int</code> type. * @@ -572,7 +572,7 @@ public interface Aws2S3ComponentBuilderFactory { return this; } /** - * The batch size (in bytes) in stream mode. + * The batch size (in bytes) in streaming upload mode. * * The option is a: <code>int</code> type. * @@ -657,7 +657,7 @@ public interface Aws2S3ComponentBuilderFactory { return this; } /** - * The naming strategy to use in stream mode. + * The naming strategy to use in streaming upload mode. * * The option is a: * <code>org.apache.camel.component.aws2.s3.stream.AWSS3NamingStrategyEnum</code> type. @@ -706,6 +706,23 @@ public interface Aws2S3ComponentBuilderFactory { return this; } /** + * The restarting policy to use in streaming upload mode. + * + * The option is a: + * <code>org.apache.camel.component.aws2.s3.stream.AWSS3RestartingPolicyEnum</code> type. + * + * Default: override + * Group: producer + * + * @param restartingPolicy the value to set + * @return the dsl builder + */ + default Aws2S3ComponentBuilder restartingPolicy( + org.apache.camel.component.aws2.s3.stream.AWSS3RestartingPolicyEnum restartingPolicy) { + doSetProperty("restartingPolicy", restartingPolicy); + return this; + } + /** * The storage class to set in the * com.amazonaws.services.s3.model.PutObjectRequest request. * @@ -909,6 +926,7 @@ public interface Aws2S3ComponentBuilderFactory { case "namingStrategy": getOrCreateConfiguration((AWS2S3Component) component).setNamingStrategy((org.apache.camel.component.aws2.s3.stream.AWSS3NamingStrategyEnum) value); return true; case "operation": getOrCreateConfiguration((AWS2S3Component) component).setOperation((org.apache.camel.component.aws2.s3.AWS2S3Operations) value); return true; case "partSize": getOrCreateConfiguration((AWS2S3Component) component).setPartSize((long) value); return true; + case "restartingPolicy": getOrCreateConfiguration((AWS2S3Component) component).setRestartingPolicy((org.apache.camel.component.aws2.s3.stream.AWSS3RestartingPolicyEnum) value); return true; case "storageClass": getOrCreateConfiguration((AWS2S3Component) component).setStorageClass((java.lang.String) value); return true; case "streamingUploadMode": getOrCreateConfiguration((AWS2S3Component) component).setStreamingUploadMode((boolean) value); return true; case "streamingUploadTimeout": getOrCreateConfiguration((AWS2S3Component) component).setStreamingUploadTimeout((long) value); return true; diff --git a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/AWS2S3EndpointBuilderFactory.java b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/AWS2S3EndpointBuilderFactory.java index bcc7ff6..89e3638 100644 --- a/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/AWS2S3EndpointBuilderFactory.java +++ b/core/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/AWS2S3EndpointBuilderFactory.java @@ -1937,7 +1937,7 @@ public interface AWS2S3EndpointBuilderFactory { return this; } /** - * The number of messages composing a batch in stream mode. + * The number of messages composing a batch in streaming upload mode. * * The option is a: <code>int</code> type. * @@ -1953,7 +1953,7 @@ public interface AWS2S3EndpointBuilderFactory { return this; } /** - * The number of messages composing a batch in stream mode. + * The number of messages composing a batch in streaming upload mode. * * The option will be converted to a <code>int</code> type. * @@ -1969,7 +1969,7 @@ public interface AWS2S3EndpointBuilderFactory { return this; } /** - * The batch size (in bytes) in stream mode. + * The batch size (in bytes) in streaming upload mode. * * The option is a: <code>int</code> type. * @@ -1984,7 +1984,7 @@ public interface AWS2S3EndpointBuilderFactory { return this; } /** - * The batch size (in bytes) in stream mode. + * The batch size (in bytes) in streaming upload mode. * * The option will be converted to a <code>int</code> type. * @@ -2131,7 +2131,7 @@ public interface AWS2S3EndpointBuilderFactory { return this; } /** - * The naming strategy to use in stream mode. + * The naming strategy to use in streaming upload mode. * * The option is a: * <code>org.apache.camel.component.aws2.s3.stream.AWSS3NamingStrategyEnum</code> type. @@ -2148,7 +2148,7 @@ public interface AWS2S3EndpointBuilderFactory { return this; } /** - * The naming strategy to use in stream mode. + * The naming strategy to use in streaming upload mode. * * The option will be converted to a * <code>org.apache.camel.component.aws2.s3.stream.AWSS3NamingStrategyEnum</code> type. @@ -2228,6 +2228,40 @@ public interface AWS2S3EndpointBuilderFactory { return this; } /** + * The restarting policy to use in streaming upload mode. + * + * The option is a: + * <code>org.apache.camel.component.aws2.s3.stream.AWSS3RestartingPolicyEnum</code> type. + * + * Default: override + * Group: producer + * + * @param restartingPolicy the value to set + * @return the dsl builder + */ + default AWS2S3EndpointProducerBuilder restartingPolicy( + AWSS3RestartingPolicyEnum restartingPolicy) { + doSetProperty("restartingPolicy", restartingPolicy); + return this; + } + /** + * The restarting policy to use in streaming upload mode. + * + * The option will be converted to a + * <code>org.apache.camel.component.aws2.s3.stream.AWSS3RestartingPolicyEnum</code> type. + * + * Default: override + * Group: producer + * + * @param restartingPolicy the value to set + * @return the dsl builder + */ + default AWS2S3EndpointProducerBuilder restartingPolicy( + String restartingPolicy) { + doSetProperty("restartingPolicy", restartingPolicy); + return this; + } + /** * The storage class to set in the * com.amazonaws.services.s3.model.PutObjectRequest request. * @@ -2962,6 +2996,15 @@ public interface AWS2S3EndpointBuilderFactory { createDownloadLink; } + /** + * Proxy enum for + * <code>org.apache.camel.component.aws2.s3.stream.AWSS3RestartingPolicyEnum</code> enum. + */ + enum AWSS3RestartingPolicyEnum { + override, + lastPart; + } + public interface AWS2S3Builders { /** * AWS 2 S3 Storage Service (camel-aws2-s3) diff --git a/docs/components/modules/ROOT/pages/aws2-s3-component.adoc b/docs/components/modules/ROOT/pages/aws2-s3-component.adoc index a895c3a..0bfe40c 100644 --- a/docs/components/modules/ROOT/pages/aws2-s3-component.adoc +++ b/docs/components/modules/ROOT/pages/aws2-s3-component.adoc @@ -49,7 +49,7 @@ from("aws2-s3://helloBucket?accessKey=yourAccessKey&secretKey=yourSecretKey&pref // component options: START -The AWS 2 S3 Storage Service component supports 48 options, which are listed below. +The AWS 2 S3 Storage Service component supports 49 options, which are listed below. @@ -86,15 +86,16 @@ The AWS 2 S3 Storage Service component supports 48 options, which are listed bel | *moveAfterRead* (consumer) | Move objects from S3 bucket to a different bucket after they have been retrieved. To accomplish the operation the destinationBucket option must be set. The copy bucket operation is only performed if the Exchange is committed. If a rollback occurs, the object is not moved. | false | boolean | *prefix* (consumer) | The prefix which is used in the com.amazonaws.services.s3.model.ListObjectsRequest to only consume objects we are interested in. | | String | *autocloseBody* (consumer) | If this option is true and includeBody is false, then the S3Object.close() method will be called on exchange completion. This option is strongly related to includeBody option. In case of setting includeBody to false and autocloseBody to false, it will be up to the caller to close the S3Object stream. Setting autocloseBody to true, will close the S3Object stream automatically. | true | boolean -| *batchMessageNumber* (producer) | The number of messages composing a batch in stream mode | 10 | int -| *batchSize* (producer) | The batch size (in bytes) in stream mode | 1000000 | int +| *batchMessageNumber* (producer) | The number of messages composing a batch in streaming upload mode | 10 | int +| *batchSize* (producer) | The batch size (in bytes) in streaming upload mode | 1000000 | int | *deleteAfterWrite* (producer) | Delete file object after the S3 file has been uploaded | false | boolean | *keyName* (producer) | Setting the key name for an element in the bucket through endpoint parameter | | String | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...] | *multiPartUpload* (producer) | If it is true, camel will upload the file with multi part format, the part size is decided by the option of partSize | false | boolean -| *namingStrategy* (producer) | The naming strategy to use in stream mode. There are 2 enums and the value can be one of: progressive, random | progressive | AWSS3NamingStrategyEnum +| *namingStrategy* (producer) | The naming strategy to use in streaming upload mode. There are 2 enums and the value can be one of: progressive, random | progressive | AWSS3NamingStrategyEnum | *operation* (producer) | The operation to do in case the user don't want to do only an upload. There are 7 enums and the value can be one of: copyObject, listObjects, deleteObject, deleteBucket, listBuckets, getObject, getObjectRange | | AWS2S3Operations | *partSize* (producer) | Setup the partSize which is used in multi part upload, the default size is 25M. | 26214400 | long +| *restartingPolicy* (producer) | The restarting policy to use in streaming upload mode. There are 2 enums and the value can be one of: override, lastPart | override | AWSS3RestartingPolicyEnum | *storageClass* (producer) | The storage class to set in the com.amazonaws.services.s3.model.PutObjectRequest request. | | String | *streamingUploadMode* (producer) | When stream mode is true the upload to bucket will be done in streaming | false | boolean | *streamingUploadTimeout* (producer) | While streaming upload mode is true, this option set the timeout to complete upload | | long @@ -136,7 +137,7 @@ with the following path and query parameters: |=== -=== Query Parameters (66 parameters): +=== Query Parameters (67 parameters): [width="100%",cols="2,5,^1,2",options="header"] @@ -177,15 +178,16 @@ with the following path and query parameters: | *exceptionHandler* (consumer) | To let the consumer use a custom ExceptionHandler. Notice if the option bridgeErrorHandler is enabled then this option is not in use. By default the consumer will deal with exceptions, that will be logged at WARN or ERROR level and ignored. | | ExceptionHandler | *exchangePattern* (consumer) | Sets the exchange pattern when the consumer creates an exchange. There are 3 enums and the value can be one of: InOnly, InOut, InOptionalOut | | ExchangePattern | *pollStrategy* (consumer) | A pluggable org.apache.camel.PollingConsumerPollingStrategy allowing you to provide your custom implementation to control error handling usually occurred during the poll operation before an Exchange have been created and being routed in Camel. | | PollingConsumerPollStrategy -| *batchMessageNumber* (producer) | The number of messages composing a batch in stream mode | 10 | int -| *batchSize* (producer) | The batch size (in bytes) in stream mode | 1000000 | int +| *batchMessageNumber* (producer) | The number of messages composing a batch in streaming upload mode | 10 | int +| *batchSize* (producer) | The batch size (in bytes) in streaming upload mode | 1000000 | int | *deleteAfterWrite* (producer) | Delete file object after the S3 file has been uploaded | false | boolean | *keyName* (producer) | Setting the key name for an element in the bucket through endpoint parameter | | String | *lazyStartProducer* (producer) | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and [...] | *multiPartUpload* (producer) | If it is true, camel will upload the file with multi part format, the part size is decided by the option of partSize | false | boolean -| *namingStrategy* (producer) | The naming strategy to use in stream mode. There are 2 enums and the value can be one of: progressive, random | progressive | AWSS3NamingStrategyEnum +| *namingStrategy* (producer) | The naming strategy to use in streaming upload mode. There are 2 enums and the value can be one of: progressive, random | progressive | AWSS3NamingStrategyEnum | *operation* (producer) | The operation to do in case the user don't want to do only an upload. There are 7 enums and the value can be one of: copyObject, listObjects, deleteObject, deleteBucket, listBuckets, getObject, getObjectRange | | AWS2S3Operations | *partSize* (producer) | Setup the partSize which is used in multi part upload, the default size is 25M. | 26214400 | long +| *restartingPolicy* (producer) | The restarting policy to use in streaming upload mode. There are 2 enums and the value can be one of: override, lastPart | override | AWSS3RestartingPolicyEnum | *storageClass* (producer) | The storage class to set in the com.amazonaws.services.s3.model.PutObjectRequest request. | | String | *streamingUploadMode* (producer) | When stream mode is true the upload to bucket will be done in streaming | false | boolean | *streamingUploadTimeout* (producer) | While streaming upload mode is true, this option set the timeout to complete upload | | long