This is an automated email from the ASF dual-hosted git repository.
acosentino pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new 04d458bce38 CAMEL-21206 - Camel-Google-Storage: Support prefix in
ListObjects operation (#15523)
04d458bce38 is described below
commit 04d458bce382e1563f248e06249716305ca803d5
Author: Andrea Cosentino <[email protected]>
AuthorDate: Thu Sep 12 07:58:49 2024 +0200
CAMEL-21206 - Camel-Google-Storage: Support prefix in ListObjects operation
(#15523)
Signed-off-by: Andrea Cosentino <[email protected]>
---
.../camel/catalog/components/google-storage.json | 47 +++++++++++-----------
.../component/google/storage/google-storage.json | 47 +++++++++++-----------
.../storage/GoogleCloudStorageConstants.java | 3 ++
.../google/storage/GoogleCloudStorageProducer.java | 16 ++++++--
.../google/storage/unit/ProducerLocalTest.java | 21 ++++++++++
.../GoogleCloudStorageEndpointBuilderFactory.java | 12 ++++++
6 files changed, 96 insertions(+), 50 deletions(-)
diff --git
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/google-storage.json
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/google-storage.json
index 7822a5935ee..1b89d18c95c 100644
---
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/google-storage.json
+++
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/google-storage.json
@@ -49,29 +49,30 @@
"CamelGoogleCloudStorageOperation": { "index": 0, "kind": "header",
"displayName": "", "group": "producer", "label": "producer", "required": false,
"javaType":
"org.apache.camel.component.google.storage.GoogleCloudStorageOperations",
"enum": [ "copyObject", "listObjects", "deleteObject", "deleteBucket",
"listBuckets", "getObject", "createDownloadLink" ], "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
operation to perform.", "const [...]
"CamelGoogleCloudStorageBucketName": { "index": 1, "kind": "header",
"displayName": "", "group": "producer", "label": "producer", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The bucket Name which this object will
be stored or which will be used for the current operation", "constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#BUCKET_NAME"
},
"CamelGoogleCloudStorageObjectName": { "index": 2, "kind": "header",
"displayName": "", "group": "producer", "label": "producer", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The object Name which will be used for
the current operation", "constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#OBJECT_NAME"
},
- "CamelGoogleCloudStorageDestinationObjectName": { "index": 3, "kind":
"header", "displayName": "", "group": "producer", "label": "producer",
"required": false, "javaType": "String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
object Destination Name which will be used for the current operation",
"constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#DESTINATION_OBJECT_NAME"
},
- "CamelGoogleCloudStorageDestinationBucketName": { "index": 4, "kind":
"header", "displayName": "", "group": "producer", "label": "producer",
"required": false, "javaType": "String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
bucket Destination Name which will be used for the current operation",
"constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#DESTINATION_BUCKET_NAME"
},
- "CamelGoogleCloudStorageDownloadLinkExpirationTime": { "index": 5, "kind":
"header", "displayName": "", "group": "producer", "label": "producer",
"required": false, "javaType": "Long", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "defaultValue": "300000",
"description": "The time in millisecond the download link will be valid.",
"constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#DOWNLOAD_LINK_EXPIRATION_TIME"
},
- "CamelGoogleCloudStorageContentLength": { "index": 6, "kind": "header",
"displayName": "", "group": "common", "label": "", "required": false,
"javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The content length of this object.",
"constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#CONTENT_LENGTH"
},
- "CamelGoogleCloudStorageContentType": { "index": 7, "kind": "header",
"displayName": "", "group": "common", "label": "", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The content type of this object.",
"constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#CONTENT_TYPE"
},
- "CamelGoogleCloudStorageCacheControl": { "index": 8, "kind": "header",
"displayName": "", "group": "common", "label": "", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The Cache-Control metadata can specify
two different aspects of how data is served from Cloud Storage: whether the
data can be cached and whether the data can be transformed", "constantName":
"org.apache.camel.component.google.s [...]
- "CamelGoogleCloudStorageContentDisposition": { "index": 9, "kind":
"header", "displayName": "", "group": "common", "label": "", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The content disposition of this
object.", "constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#CONTENT_DISPOSITION"
},
- "CamelGoogleCloudStorageContentEncoding": { "index": 10, "kind": "header",
"displayName": "", "group": "common", "label": "", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The content encoding of this object.",
"constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#CONTENT_ENCODING"
},
- "CamelGoogleCloudStorageContentMd5": { "index": 11, "kind": "header",
"displayName": "", "group": "common", "label": "", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The md5 checksum of this object.",
"constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#CONTENT_MD5"
},
- "CamelFileName": { "index": 12, "kind": "header", "displayName": "",
"group": "consumer", "label": "consumer", "required": false, "javaType":
"String", "deprecated": false, "deprecationNote": "", "autowired": false,
"secret": false, "description": "The name of the blob", "constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#FILE_NAME"
},
- "CamelGoogleCloudStorageComponentCount": { "index": 13, "kind": "header",
"displayName": "", "group": "consumer", "label": "consumer", "required": false,
"javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The component count of this object",
"constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_COMPONENT_COUNT"
},
- "CamelGoogleCloudStorageContentLanguage": { "index": 14, "kind": "header",
"displayName": "", "group": "consumer", "label": "consumer", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The Content-Language metadata indicates
the language(s) that the object is intended for.", "constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_CONTENT_LANGUAGE"
},
- "CamelGoogleCloudStorageCustomTime": { "index": 15, "kind": "header",
"displayName": "", "group": "consumer", "label": "consumer", "required": false,
"javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The Custom-Time metadata is a
user-specified date and time represented in the RFC 3339 format
YYYY-MM-DD'T'HH:MM:SS.SS'Z' or YYYY-MM-DD'T'HH:MM:SS'Z' when milliseconds are
zero. This metadata is typically set in order to [...]
- "CamelGoogleCloudStorageCrc32cHex": { "index": 16, "kind": "header",
"displayName": "", "group": "consumer", "label": "consumer", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The CRC32c of the object",
"constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_CRC32C_HEX"
},
- "CamelGoogleCloudStorageETag": { "index": 17, "kind": "header",
"displayName": "", "group": "common", "label": "", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The ETag for the Object.",
"constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_ETAG"
},
- "CamelGoogleCloudStorageGeneration": { "index": 18, "kind": "header",
"displayName": "", "group": "consumer", "label": "consumer", "required": false,
"javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "Is the generation number of the object
for which you are retrieving information.", "constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_GENERATION"
},
- "CamelGoogleCloudStorageBlobId": { "index": 19, "kind": "header",
"displayName": "", "group": "consumer", "label": "consumer", "required": false,
"javaType": "com.google.cloud.storage.BlobId", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
blob id of the object", "constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_BLOB_ID"
},
- "CamelGoogleCloudStorageKmsKeyName": { "index": 20, "kind": "header",
"displayName": "", "group": "consumer", "label": "consumer", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The KMS key name", "constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_KMS_KEY_NAME"
},
- "CamelGoogleCloudStorageMediaLink": { "index": 21, "kind": "header",
"displayName": "", "group": "consumer", "label": "consumer", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The media link", "constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_MEDIA_LINK"
},
- "CamelGoogleCloudStorageMetageneration": { "index": 22, "kind": "header",
"displayName": "", "group": "consumer", "label": "consumer", "required": false,
"javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The metageneration of the object",
"constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_METAGENERATION"
},
- "CamelGoogleCloudStorageStorageClass": { "index": 23, "kind": "header",
"displayName": "", "group": "consumer", "label": "consumer", "required": false,
"javaType": "com.google.cloud.storage.StorageClass", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
storage class of the object", "constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_STORAGE_CLASS"
},
- "CamelGoogleCloudStorageCreateTime": { "index": 24, "kind": "header",
"displayName": "", "group": "consumer", "label": "consumer", "required": false,
"javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The creation time of the object",
"constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_CREATE_TIME"
},
- "CamelGoogleCloudStorageLastUpdate": { "index": 25, "kind": "header",
"displayName": "", "group": "consumer", "label": "consumer", "required": false,
"javaType": "Date", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The last update of the object",
"constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_LAST_UPDATE"
}
+ "CamelGoogleCloudStoragePrefixName": { "index": 3, "kind": "header",
"displayName": "", "group": "producer", "label": "producer", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The prefix to be used in List Objects
operation", "constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#PREFIX_NAME"
},
+ "CamelGoogleCloudStorageDestinationObjectName": { "index": 4, "kind":
"header", "displayName": "", "group": "producer", "label": "producer",
"required": false, "javaType": "String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
object Destination Name which will be used for the current operation",
"constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#DESTINATION_OBJECT_NAME"
},
+ "CamelGoogleCloudStorageDestinationBucketName": { "index": 5, "kind":
"header", "displayName": "", "group": "producer", "label": "producer",
"required": false, "javaType": "String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
bucket Destination Name which will be used for the current operation",
"constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#DESTINATION_BUCKET_NAME"
},
+ "CamelGoogleCloudStorageDownloadLinkExpirationTime": { "index": 6, "kind":
"header", "displayName": "", "group": "producer", "label": "producer",
"required": false, "javaType": "Long", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "defaultValue": "300000",
"description": "The time in millisecond the download link will be valid.",
"constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#DOWNLOAD_LINK_EXPIRATION_TIME"
},
+ "CamelGoogleCloudStorageContentLength": { "index": 7, "kind": "header",
"displayName": "", "group": "common", "label": "", "required": false,
"javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The content length of this object.",
"constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#CONTENT_LENGTH"
},
+ "CamelGoogleCloudStorageContentType": { "index": 8, "kind": "header",
"displayName": "", "group": "common", "label": "", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The content type of this object.",
"constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#CONTENT_TYPE"
},
+ "CamelGoogleCloudStorageCacheControl": { "index": 9, "kind": "header",
"displayName": "", "group": "common", "label": "", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The Cache-Control metadata can specify
two different aspects of how data is served from Cloud Storage: whether the
data can be cached and whether the data can be transformed", "constantName":
"org.apache.camel.component.google.s [...]
+ "CamelGoogleCloudStorageContentDisposition": { "index": 10, "kind":
"header", "displayName": "", "group": "common", "label": "", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The content disposition of this
object.", "constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#CONTENT_DISPOSITION"
},
+ "CamelGoogleCloudStorageContentEncoding": { "index": 11, "kind": "header",
"displayName": "", "group": "common", "label": "", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The content encoding of this object.",
"constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#CONTENT_ENCODING"
},
+ "CamelGoogleCloudStorageContentMd5": { "index": 12, "kind": "header",
"displayName": "", "group": "common", "label": "", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The md5 checksum of this object.",
"constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#CONTENT_MD5"
},
+ "CamelFileName": { "index": 13, "kind": "header", "displayName": "",
"group": "consumer", "label": "consumer", "required": false, "javaType":
"String", "deprecated": false, "deprecationNote": "", "autowired": false,
"secret": false, "description": "The name of the blob", "constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#FILE_NAME"
},
+ "CamelGoogleCloudStorageComponentCount": { "index": 14, "kind": "header",
"displayName": "", "group": "consumer", "label": "consumer", "required": false,
"javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The component count of this object",
"constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_COMPONENT_COUNT"
},
+ "CamelGoogleCloudStorageContentLanguage": { "index": 15, "kind": "header",
"displayName": "", "group": "consumer", "label": "consumer", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The Content-Language metadata indicates
the language(s) that the object is intended for.", "constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_CONTENT_LANGUAGE"
},
+ "CamelGoogleCloudStorageCustomTime": { "index": 16, "kind": "header",
"displayName": "", "group": "consumer", "label": "consumer", "required": false,
"javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The Custom-Time metadata is a
user-specified date and time represented in the RFC 3339 format
YYYY-MM-DD'T'HH:MM:SS.SS'Z' or YYYY-MM-DD'T'HH:MM:SS'Z' when milliseconds are
zero. This metadata is typically set in order to [...]
+ "CamelGoogleCloudStorageCrc32cHex": { "index": 17, "kind": "header",
"displayName": "", "group": "consumer", "label": "consumer", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The CRC32c of the object",
"constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_CRC32C_HEX"
},
+ "CamelGoogleCloudStorageETag": { "index": 18, "kind": "header",
"displayName": "", "group": "common", "label": "", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The ETag for the Object.",
"constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_ETAG"
},
+ "CamelGoogleCloudStorageGeneration": { "index": 19, "kind": "header",
"displayName": "", "group": "consumer", "label": "consumer", "required": false,
"javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "Is the generation number of the object
for which you are retrieving information.", "constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_GENERATION"
},
+ "CamelGoogleCloudStorageBlobId": { "index": 20, "kind": "header",
"displayName": "", "group": "consumer", "label": "consumer", "required": false,
"javaType": "com.google.cloud.storage.BlobId", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
blob id of the object", "constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_BLOB_ID"
},
+ "CamelGoogleCloudStorageKmsKeyName": { "index": 21, "kind": "header",
"displayName": "", "group": "consumer", "label": "consumer", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The KMS key name", "constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_KMS_KEY_NAME"
},
+ "CamelGoogleCloudStorageMediaLink": { "index": 22, "kind": "header",
"displayName": "", "group": "consumer", "label": "consumer", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The media link", "constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_MEDIA_LINK"
},
+ "CamelGoogleCloudStorageMetageneration": { "index": 23, "kind": "header",
"displayName": "", "group": "consumer", "label": "consumer", "required": false,
"javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The metageneration of the object",
"constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_METAGENERATION"
},
+ "CamelGoogleCloudStorageStorageClass": { "index": 24, "kind": "header",
"displayName": "", "group": "consumer", "label": "consumer", "required": false,
"javaType": "com.google.cloud.storage.StorageClass", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
storage class of the object", "constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_STORAGE_CLASS"
},
+ "CamelGoogleCloudStorageCreateTime": { "index": 25, "kind": "header",
"displayName": "", "group": "consumer", "label": "consumer", "required": false,
"javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The creation time of the object",
"constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_CREATE_TIME"
},
+ "CamelGoogleCloudStorageLastUpdate": { "index": 26, "kind": "header",
"displayName": "", "group": "consumer", "label": "consumer", "required": false,
"javaType": "Date", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The last update of the object",
"constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_LAST_UPDATE"
}
},
"properties": {
"bucketName": { "index": 0, "kind": "path", "displayName": "Bucket Name",
"group": "common", "label": "common", "required": true, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.google.storage.GoogleCloudStorageConfiguration",
"configurationField": "configuration", "description": "Bucket name or ARN" },
diff --git
a/components/camel-google/camel-google-storage/src/generated/resources/META-INF/org/apache/camel/component/google/storage/google-storage.json
b/components/camel-google/camel-google-storage/src/generated/resources/META-INF/org/apache/camel/component/google/storage/google-storage.json
index 7822a5935ee..1b89d18c95c 100644
---
a/components/camel-google/camel-google-storage/src/generated/resources/META-INF/org/apache/camel/component/google/storage/google-storage.json
+++
b/components/camel-google/camel-google-storage/src/generated/resources/META-INF/org/apache/camel/component/google/storage/google-storage.json
@@ -49,29 +49,30 @@
"CamelGoogleCloudStorageOperation": { "index": 0, "kind": "header",
"displayName": "", "group": "producer", "label": "producer", "required": false,
"javaType":
"org.apache.camel.component.google.storage.GoogleCloudStorageOperations",
"enum": [ "copyObject", "listObjects", "deleteObject", "deleteBucket",
"listBuckets", "getObject", "createDownloadLink" ], "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
operation to perform.", "const [...]
"CamelGoogleCloudStorageBucketName": { "index": 1, "kind": "header",
"displayName": "", "group": "producer", "label": "producer", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The bucket Name which this object will
be stored or which will be used for the current operation", "constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#BUCKET_NAME"
},
"CamelGoogleCloudStorageObjectName": { "index": 2, "kind": "header",
"displayName": "", "group": "producer", "label": "producer", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The object Name which will be used for
the current operation", "constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#OBJECT_NAME"
},
- "CamelGoogleCloudStorageDestinationObjectName": { "index": 3, "kind":
"header", "displayName": "", "group": "producer", "label": "producer",
"required": false, "javaType": "String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
object Destination Name which will be used for the current operation",
"constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#DESTINATION_OBJECT_NAME"
},
- "CamelGoogleCloudStorageDestinationBucketName": { "index": 4, "kind":
"header", "displayName": "", "group": "producer", "label": "producer",
"required": false, "javaType": "String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
bucket Destination Name which will be used for the current operation",
"constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#DESTINATION_BUCKET_NAME"
},
- "CamelGoogleCloudStorageDownloadLinkExpirationTime": { "index": 5, "kind":
"header", "displayName": "", "group": "producer", "label": "producer",
"required": false, "javaType": "Long", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "defaultValue": "300000",
"description": "The time in millisecond the download link will be valid.",
"constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#DOWNLOAD_LINK_EXPIRATION_TIME"
},
- "CamelGoogleCloudStorageContentLength": { "index": 6, "kind": "header",
"displayName": "", "group": "common", "label": "", "required": false,
"javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The content length of this object.",
"constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#CONTENT_LENGTH"
},
- "CamelGoogleCloudStorageContentType": { "index": 7, "kind": "header",
"displayName": "", "group": "common", "label": "", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The content type of this object.",
"constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#CONTENT_TYPE"
},
- "CamelGoogleCloudStorageCacheControl": { "index": 8, "kind": "header",
"displayName": "", "group": "common", "label": "", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The Cache-Control metadata can specify
two different aspects of how data is served from Cloud Storage: whether the
data can be cached and whether the data can be transformed", "constantName":
"org.apache.camel.component.google.s [...]
- "CamelGoogleCloudStorageContentDisposition": { "index": 9, "kind":
"header", "displayName": "", "group": "common", "label": "", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The content disposition of this
object.", "constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#CONTENT_DISPOSITION"
},
- "CamelGoogleCloudStorageContentEncoding": { "index": 10, "kind": "header",
"displayName": "", "group": "common", "label": "", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The content encoding of this object.",
"constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#CONTENT_ENCODING"
},
- "CamelGoogleCloudStorageContentMd5": { "index": 11, "kind": "header",
"displayName": "", "group": "common", "label": "", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The md5 checksum of this object.",
"constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#CONTENT_MD5"
},
- "CamelFileName": { "index": 12, "kind": "header", "displayName": "",
"group": "consumer", "label": "consumer", "required": false, "javaType":
"String", "deprecated": false, "deprecationNote": "", "autowired": false,
"secret": false, "description": "The name of the blob", "constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#FILE_NAME"
},
- "CamelGoogleCloudStorageComponentCount": { "index": 13, "kind": "header",
"displayName": "", "group": "consumer", "label": "consumer", "required": false,
"javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The component count of this object",
"constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_COMPONENT_COUNT"
},
- "CamelGoogleCloudStorageContentLanguage": { "index": 14, "kind": "header",
"displayName": "", "group": "consumer", "label": "consumer", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The Content-Language metadata indicates
the language(s) that the object is intended for.", "constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_CONTENT_LANGUAGE"
},
- "CamelGoogleCloudStorageCustomTime": { "index": 15, "kind": "header",
"displayName": "", "group": "consumer", "label": "consumer", "required": false,
"javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The Custom-Time metadata is a
user-specified date and time represented in the RFC 3339 format
YYYY-MM-DD'T'HH:MM:SS.SS'Z' or YYYY-MM-DD'T'HH:MM:SS'Z' when milliseconds are
zero. This metadata is typically set in order to [...]
- "CamelGoogleCloudStorageCrc32cHex": { "index": 16, "kind": "header",
"displayName": "", "group": "consumer", "label": "consumer", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The CRC32c of the object",
"constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_CRC32C_HEX"
},
- "CamelGoogleCloudStorageETag": { "index": 17, "kind": "header",
"displayName": "", "group": "common", "label": "", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The ETag for the Object.",
"constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_ETAG"
},
- "CamelGoogleCloudStorageGeneration": { "index": 18, "kind": "header",
"displayName": "", "group": "consumer", "label": "consumer", "required": false,
"javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "Is the generation number of the object
for which you are retrieving information.", "constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_GENERATION"
},
- "CamelGoogleCloudStorageBlobId": { "index": 19, "kind": "header",
"displayName": "", "group": "consumer", "label": "consumer", "required": false,
"javaType": "com.google.cloud.storage.BlobId", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
blob id of the object", "constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_BLOB_ID"
},
- "CamelGoogleCloudStorageKmsKeyName": { "index": 20, "kind": "header",
"displayName": "", "group": "consumer", "label": "consumer", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The KMS key name", "constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_KMS_KEY_NAME"
},
- "CamelGoogleCloudStorageMediaLink": { "index": 21, "kind": "header",
"displayName": "", "group": "consumer", "label": "consumer", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The media link", "constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_MEDIA_LINK"
},
- "CamelGoogleCloudStorageMetageneration": { "index": 22, "kind": "header",
"displayName": "", "group": "consumer", "label": "consumer", "required": false,
"javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The metageneration of the object",
"constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_METAGENERATION"
},
- "CamelGoogleCloudStorageStorageClass": { "index": 23, "kind": "header",
"displayName": "", "group": "consumer", "label": "consumer", "required": false,
"javaType": "com.google.cloud.storage.StorageClass", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
storage class of the object", "constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_STORAGE_CLASS"
},
- "CamelGoogleCloudStorageCreateTime": { "index": 24, "kind": "header",
"displayName": "", "group": "consumer", "label": "consumer", "required": false,
"javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The creation time of the object",
"constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_CREATE_TIME"
},
- "CamelGoogleCloudStorageLastUpdate": { "index": 25, "kind": "header",
"displayName": "", "group": "consumer", "label": "consumer", "required": false,
"javaType": "Date", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The last update of the object",
"constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_LAST_UPDATE"
}
+ "CamelGoogleCloudStoragePrefixName": { "index": 3, "kind": "header",
"displayName": "", "group": "producer", "label": "producer", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The prefix to be used in List Objects
operation", "constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#PREFIX_NAME"
},
+ "CamelGoogleCloudStorageDestinationObjectName": { "index": 4, "kind":
"header", "displayName": "", "group": "producer", "label": "producer",
"required": false, "javaType": "String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
object Destination Name which will be used for the current operation",
"constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#DESTINATION_OBJECT_NAME"
},
+ "CamelGoogleCloudStorageDestinationBucketName": { "index": 5, "kind":
"header", "displayName": "", "group": "producer", "label": "producer",
"required": false, "javaType": "String", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
bucket Destination Name which will be used for the current operation",
"constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#DESTINATION_BUCKET_NAME"
},
+ "CamelGoogleCloudStorageDownloadLinkExpirationTime": { "index": 6, "kind":
"header", "displayName": "", "group": "producer", "label": "producer",
"required": false, "javaType": "Long", "deprecated": false, "deprecationNote":
"", "autowired": false, "secret": false, "defaultValue": "300000",
"description": "The time in millisecond the download link will be valid.",
"constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#DOWNLOAD_LINK_EXPIRATION_TIME"
},
+ "CamelGoogleCloudStorageContentLength": { "index": 7, "kind": "header",
"displayName": "", "group": "common", "label": "", "required": false,
"javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The content length of this object.",
"constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#CONTENT_LENGTH"
},
+ "CamelGoogleCloudStorageContentType": { "index": 8, "kind": "header",
"displayName": "", "group": "common", "label": "", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The content type of this object.",
"constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#CONTENT_TYPE"
},
+ "CamelGoogleCloudStorageCacheControl": { "index": 9, "kind": "header",
"displayName": "", "group": "common", "label": "", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The Cache-Control metadata can specify
two different aspects of how data is served from Cloud Storage: whether the
data can be cached and whether the data can be transformed", "constantName":
"org.apache.camel.component.google.s [...]
+ "CamelGoogleCloudStorageContentDisposition": { "index": 10, "kind":
"header", "displayName": "", "group": "common", "label": "", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The content disposition of this
object.", "constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#CONTENT_DISPOSITION"
},
+ "CamelGoogleCloudStorageContentEncoding": { "index": 11, "kind": "header",
"displayName": "", "group": "common", "label": "", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The content encoding of this object.",
"constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#CONTENT_ENCODING"
},
+ "CamelGoogleCloudStorageContentMd5": { "index": 12, "kind": "header",
"displayName": "", "group": "common", "label": "", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The md5 checksum of this object.",
"constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#CONTENT_MD5"
},
+ "CamelFileName": { "index": 13, "kind": "header", "displayName": "",
"group": "consumer", "label": "consumer", "required": false, "javaType":
"String", "deprecated": false, "deprecationNote": "", "autowired": false,
"secret": false, "description": "The name of the blob", "constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#FILE_NAME"
},
+ "CamelGoogleCloudStorageComponentCount": { "index": 14, "kind": "header",
"displayName": "", "group": "consumer", "label": "consumer", "required": false,
"javaType": "Integer", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The component count of this object",
"constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_COMPONENT_COUNT"
},
+ "CamelGoogleCloudStorageContentLanguage": { "index": 15, "kind": "header",
"displayName": "", "group": "consumer", "label": "consumer", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The Content-Language metadata indicates
the language(s) that the object is intended for.", "constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_CONTENT_LANGUAGE"
},
+ "CamelGoogleCloudStorageCustomTime": { "index": 16, "kind": "header",
"displayName": "", "group": "consumer", "label": "consumer", "required": false,
"javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The Custom-Time metadata is a
user-specified date and time represented in the RFC 3339 format
YYYY-MM-DD'T'HH:MM:SS.SS'Z' or YYYY-MM-DD'T'HH:MM:SS'Z' when milliseconds are
zero. This metadata is typically set in order to [...]
+ "CamelGoogleCloudStorageCrc32cHex": { "index": 17, "kind": "header",
"displayName": "", "group": "consumer", "label": "consumer", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The CRC32c of the object",
"constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_CRC32C_HEX"
},
+ "CamelGoogleCloudStorageETag": { "index": 18, "kind": "header",
"displayName": "", "group": "common", "label": "", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The ETag for the Object.",
"constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_ETAG"
},
+ "CamelGoogleCloudStorageGeneration": { "index": 19, "kind": "header",
"displayName": "", "group": "consumer", "label": "consumer", "required": false,
"javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "Is the generation number of the object
for which you are retrieving information.", "constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_GENERATION"
},
+ "CamelGoogleCloudStorageBlobId": { "index": 20, "kind": "header",
"displayName": "", "group": "consumer", "label": "consumer", "required": false,
"javaType": "com.google.cloud.storage.BlobId", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
blob id of the object", "constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_BLOB_ID"
},
+ "CamelGoogleCloudStorageKmsKeyName": { "index": 21, "kind": "header",
"displayName": "", "group": "consumer", "label": "consumer", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The KMS key name", "constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_KMS_KEY_NAME"
},
+ "CamelGoogleCloudStorageMediaLink": { "index": 22, "kind": "header",
"displayName": "", "group": "consumer", "label": "consumer", "required": false,
"javaType": "String", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The media link", "constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_MEDIA_LINK"
},
+ "CamelGoogleCloudStorageMetageneration": { "index": 23, "kind": "header",
"displayName": "", "group": "consumer", "label": "consumer", "required": false,
"javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The metageneration of the object",
"constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_METAGENERATION"
},
+ "CamelGoogleCloudStorageStorageClass": { "index": 24, "kind": "header",
"displayName": "", "group": "consumer", "label": "consumer", "required": false,
"javaType": "com.google.cloud.storage.StorageClass", "deprecated": false,
"deprecationNote": "", "autowired": false, "secret": false, "description": "The
storage class of the object", "constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_STORAGE_CLASS"
},
+ "CamelGoogleCloudStorageCreateTime": { "index": 25, "kind": "header",
"displayName": "", "group": "consumer", "label": "consumer", "required": false,
"javaType": "Long", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The creation time of the object",
"constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_CREATE_TIME"
},
+ "CamelGoogleCloudStorageLastUpdate": { "index": 26, "kind": "header",
"displayName": "", "group": "consumer", "label": "consumer", "required": false,
"javaType": "Date", "deprecated": false, "deprecationNote": "", "autowired":
false, "secret": false, "description": "The last update of the object",
"constantName":
"org.apache.camel.component.google.storage.GoogleCloudStorageConstants#METADATA_LAST_UPDATE"
}
},
"properties": {
"bucketName": { "index": 0, "kind": "path", "displayName": "Bucket Name",
"group": "common", "label": "common", "required": true, "type": "string",
"javaType": "java.lang.String", "deprecated": false, "deprecationNote": "",
"autowired": false, "secret": false, "configurationClass":
"org.apache.camel.component.google.storage.GoogleCloudStorageConfiguration",
"configurationField": "configuration", "description": "Bucket name or ARN" },
diff --git
a/components/camel-google/camel-google-storage/src/main/java/org/apache/camel/component/google/storage/GoogleCloudStorageConstants.java
b/components/camel-google/camel-google-storage/src/main/java/org/apache/camel/component/google/storage/GoogleCloudStorageConstants.java
index 1187073a386..8a848e04b5d 100644
---
a/components/camel-google/camel-google-storage/src/main/java/org/apache/camel/component/google/storage/GoogleCloudStorageConstants.java
+++
b/components/camel-google/camel-google-storage/src/main/java/org/apache/camel/component/google/storage/GoogleCloudStorageConstants.java
@@ -31,6 +31,9 @@ public final class GoogleCloudStorageConstants {
@Metadata(label = "producer", description = "The object Name which will be
used for the current operation",
javaType = "String")
public static final String OBJECT_NAME =
"CamelGoogleCloudStorageObjectName";
+ @Metadata(label = "producer", description = "The prefix to be used in List
Objects operation",
+ javaType = "String")
+ public static final String PREFIX_NAME =
"CamelGoogleCloudStoragePrefixName";
@Metadata(label = "producer", description = "The object Destination Name
which will be used for the current operation",
javaType = "String")
public static final String DESTINATION_OBJECT_NAME =
"CamelGoogleCloudStorageDestinationObjectName";
diff --git
a/components/camel-google/camel-google-storage/src/main/java/org/apache/camel/component/google/storage/GoogleCloudStorageProducer.java
b/components/camel-google/camel-google-storage/src/main/java/org/apache/camel/component/google/storage/GoogleCloudStorageProducer.java
index 75e5aca4b6b..34feb757a39 100644
---
a/components/camel-google/camel-google-storage/src/main/java/org/apache/camel/component/google/storage/GoogleCloudStorageProducer.java
+++
b/components/camel-google/camel-google-storage/src/main/java/org/apache/camel/component/google/storage/GoogleCloudStorageProducer.java
@@ -342,10 +342,18 @@ public class GoogleCloudStorageProducer extends
DefaultProducer {
private void listObjects(Storage storage, Exchange exchange) {
final String bucketName = determineBucketName();
-
- List<Blob> bloblist = new LinkedList<>();
- for (Blob blob : storage.list(bucketName).iterateAll()) {
- bloblist.add(blob);
+ String prefix =
exchange.getMessage().getHeader(GoogleCloudStorageConstants.PREFIX_NAME,
String.class);
+ List<Blob> bloblist;
+ if (ObjectHelper.isEmpty(prefix)) {
+ bloblist = new LinkedList<>();
+ for (Blob blob : storage.list(bucketName).iterateAll()) {
+ bloblist.add(blob);
+ }
+ } else {
+ bloblist = new LinkedList<>();
+ for (Blob blob : storage.list(bucketName,
Storage.BlobListOption.prefix(prefix)).iterateAll()) {
+ bloblist.add(blob);
+ }
}
Message message = getMessageForResponse(exchange);
diff --git
a/components/camel-google/camel-google-storage/src/test/java/org/apache/camel/component/google/storage/unit/ProducerLocalTest.java
b/components/camel-google/camel-google-storage/src/test/java/org/apache/camel/component/google/storage/unit/ProducerLocalTest.java
index 8ec0bf210fb..6b064f7b2a0 100644
---
a/components/camel-google/camel-google-storage/src/test/java/org/apache/camel/component/google/storage/unit/ProducerLocalTest.java
+++
b/components/camel-google/camel-google-storage/src/test/java/org/apache/camel/component/google/storage/unit/ProducerLocalTest.java
@@ -101,6 +101,27 @@ public class ProducerLocalTest extends
GoogleCloudStorageBaseTest {
assertEquals(1, resp.size());
assertEquals(fileName, resp.get(0).getName());
+ Exchange listObjectsExchangeWithPrefix =
template.request("direct:listObjects", exchange -> {
+ exchange.getIn().setHeader(GoogleCloudStorageConstants.OPERATION,
+ GoogleCloudStorageOperations.listObjects);
+ exchange.getIn().setHeader(GoogleCloudStorageConstants.PREFIX_NAME,
+ "just_");
+ });
+ LOG.info("listObjectsExchange.body={}",
listObjectsExchangeWithPrefix.getMessage().getBody());
+ resp = listObjectsExchangeWithPrefix.getMessage().getBody(List.class);
+ assertEquals(1, resp.size());
+ assertEquals(fileName, resp.get(0).getName());
+
+ Exchange listObjectsExchangeWithPrefixNoRes =
template.request("direct:listObjects", exchange -> {
+ exchange.getIn().setHeader(GoogleCloudStorageConstants.OPERATION,
+ GoogleCloudStorageOperations.listObjects);
+ exchange.getIn().setHeader(GoogleCloudStorageConstants.PREFIX_NAME,
+ "file_");
+ });
+ LOG.info("listObjectsExchange.body={}",
listObjectsExchangeWithPrefixNoRes.getMessage().getBody());
+ resp =
listObjectsExchangeWithPrefixNoRes.getMessage().getBody(List.class);
+ assertEquals(0, resp.size());
+
Exchange getObjectExchange = template.request("direct:getObject",
exchange -> {
exchange.getIn().setHeader(GoogleCloudStorageConstants.OPERATION,
GoogleCloudStorageOperations.getObject);
diff --git
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/GoogleCloudStorageEndpointBuilderFactory.java
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/GoogleCloudStorageEndpointBuilderFactory.java
index 3bd4fafd60d..869dc6140db 100644
---
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/GoogleCloudStorageEndpointBuilderFactory.java
+++
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/GoogleCloudStorageEndpointBuilderFactory.java
@@ -1503,6 +1503,18 @@ public interface
GoogleCloudStorageEndpointBuilderFactory {
public String googleCloudStorageObjectName() {
return "CamelGoogleCloudStorageObjectName";
}
+ /**
+ * The prefix to be used in List Objects operation.
+ *
+ * The option is a: {@code String} type.
+ *
+ * Group: producer
+ *
+ * @return the name of the header {@code GoogleCloudStoragePrefixName}.
+ */
+ public String googleCloudStoragePrefixName() {
+ return "CamelGoogleCloudStoragePrefixName";
+ }
/**
* The object Destination Name which will be used for the current
* operation.