// Do not edit directly!
// This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page
= AWS 2 S3 Storage Service
:page-aliases: extensions/aws2-s3.adoc
:linkattrs:
:cq-artifact-id: camel-quarkus-aws2-s3
:cq-native-supported: true
:cq-status: Stable
:cq-status-deprecation: Stable
:cq-description: Store and retrieve objects from AWS S3 Storage Service using AWS SDK version 2.x.
:cq-deprecated: false
:cq-jvm-since: 1.0.0
:cq-native-since: 1.0.0

[.badges]
[.badge-key]##JVM since##[.badge-supported]##1.0.0## [.badge-key]##Native since##[.badge-supported]##1.0.0##

Store and retrieve objects from AWS S3 Storage Service using AWS SDK version 2.x.

== What's inside

* xref:{cq-camel-components}::aws2-s3-component.adoc[AWS S3 Storage Service component], URI syntax: `aws2-s3://bucketNameOrArn`

Please refer to the above link for usage and configuration details.

== Maven coordinates

https://code.quarkus.io/?extension-search=camel-quarkus-aws2-s3[Create a new project with this extension on code.quarkus.io, window="_blank"]

Or add the coordinates to your existing project:

[source,xml]
----
<dependency>
    <groupId>org.apache.camel.quarkus</groupId>
    <artifactId>camel-quarkus-aws2-s3</artifactId>
</dependency>
----

Check the xref:user-guide/index.adoc[User guide] for more information about writing Camel Quarkus applications.

== SSL in native mode

This extension auto-enables SSL support in native mode. Hence you do not need to add
`quarkus.ssl.native=true` to your `application.properties` yourself. See also
https://quarkus.io/guides/native-and-ssl[Quarkus SSL guide].

== Additional Camel Quarkus configuration

=== Optional integration with Quarkus Amazon S3

If desired, it is possible to use the Quarkus Amazon S3 Client extension in conjunction with Camel Quarkus AWS2 S3.
Note that this is fully optional and not at all mandatory.
Follow the https://quarkus.io/guides/amazon-s3#configuring-s3-clients[Quarkus documentation] with some caveats.

1. The Apache client type has to be selected by configuring the following property.
+
[source,properties]
----
quarkus.s3.sync-client.type=apache
----

2. The `S3Client` has to be "unremovable" in the sense of https://quarkus.io/guides/cdi-reference#remove_unused_beans[Quarkus CDI reference] so that Camel Quarkus is able to look it up at runtime.
You can reach that e.g. by adding a dummy bean injecting `S3Client`:
+
[source,java]
----
import javax.enterprise.context.ApplicationScoped;
import io.quarkus.arc.Unremovable;
import software.amazon.awssdk.services.s3.S3Client;

@ApplicationScoped
@Unremovable
class UnremovableS3Client {
    @Inject
    S3Client s3Client;
}
----

