blob: e6091e83ed06a2dfe6220b7255ea699195e51e1f [file] [log] [blame]
## OpenStack Swift Component
*Available as of Camel version 2.19*
The openstack-swift component allows messages to be sent to an OpenStack object storage services.
### Dependencies
Maven users will need to add the following dependency to their pom.xml.
*pom.xml*
[source,xml]
---------------------------------------
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-openstack</artifactId>
<version>${camel-version}</version>
</dependency>
---------------------------------------
where `${camel-version`} must be replaced by the actual version of Camel.
### URI Format
[source,java]
----------------------------
openstack-swift://hosturl[?options]
----------------------------
You can append query options to the URI in the following format
`?options=value&option2=value&...`
### URI Options
// component options: START
The OpenStack Swift component has no options.
// component options: END
// endpoint options: START
The OpenStack Swift endpoint is configured using URI syntax:
openstack-swift:host
with the following path and query parameters:
#### Path Parameters (1 parameters):
[width="100%",cols="2,5,^1,2",options="header"]
|=======================================================================
| Name | Description | Default | Type
| **host** | *Required* OpenStack host url | | String
|=======================================================================
#### Query Parameters (9 parameters):
[width="100%",cols="2,5,^1,2",options="header"]
|=======================================================================
| Name | Description | Default | Type
| **apiVersion** (producer) | OpenStack API version | V3 | String
| **config** (producer) | OpenStack configuration | | Config
| **domain** (producer) | Authentication domain | default | String
| **operation** (producer) | The operation to do | | String
| **password** (producer) | *Required* OpenStack password | | String
| **project** (producer) | *Required* The project ID | | String
| **subsystem** (producer) | *Required* OpenStack Swift subsystem | | String
| **username** (producer) | *Required* OpenStack username | | String
| **synchronous** (advanced) | Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported). | false | boolean
|=======================================================================
// endpoint options: END
### Usage
You can use following settings for each subsystem:
### containers
#### Operations you can perform with the Container producer
[width="100%",cols="20%,80%",options="header",]
|=========================================================================
|Operation | Description
|`create` | Create new container.
|`get` | Get the container.
|`getAll` | Get all containers.
|`update` | Update the container.
|`delete` | Delete the container.
|`getMetadata` | Get metadata.
|`createUpdateMetadata` | Create/update metadata.
|`deleteMetadata` | Delete metadata.
|=========================================================================
#### Message headers evaluated by the Volume producer
[width="100%",cols="20%,10%,70%",options="header",]
|=========================================================================
|Header |Type |Description
|`operation` | `String` | The operation to perform.
|`name` |`String` |The container name.
|`X-Container-Meta-` |`Map` | Container metadata prefix.
|`X-Versions-Location` |`String` | Versions location.
|`X-Container-Read` |`String` | ACL - container read.
|`X-Container-Write` |`String` | ACL - container write.
|`limit` | `Integer` | List options - limit.
|`marker` | `String` | List options - marker.
|`end_marker` | `String` | List options - end marker.
|`delimiter` | `Character` | List options - delimiter.
|`path` | `String` | List options - path.
|=========================================================================
If you need more precise container settings you can create new object of the type *org.openstack4j.model.storage.object.options.CreateUpdateContainerOptions* (in case of create or update operation)
or *org.openstack4j.model.storage.object.options.ContainerListOptions* for listing containers and send in the message body.
### objects
#### Operations you can perform with the Object producer
[width="100%",cols="20%,80%",options="header",]
|=========================================================================
|Operation | Description
|`create` | Create new object.
|`get` | Get the object.
|`getAll` | Get all objects.
|`update` | Get update the object.
|`delete` | Delete the object.
|`getMetadata` | Get metadata.
|`createUpdateMetadata` | Create/update metadata.
|=========================================================================
#### Message headers evaluated by the Object producer
[width="100%",cols="10%,10%,80%",options="header",]
|=========================================================================
|Header |Type |Description
|`operation` | `String` | The operation to perform.
|`containerName` |`String` |The container name.
|`objectName` |`String` |The object name.
|=========================================================================
### See Also
* link:configuring-camel.html[Configuring Camel]
* link:component.html[Component]
* link:endpoint.html[Endpoint]
* link:getting-started.html[Getting Started]
* link:openstack.html[openstack Component]