# OpenStack Destination

Duplicati supports storing files with OpenStack, which is a large-scale object storage, similar to S3. With OpenStack you store "objects" (similar to files) in "containers" which define various properties shared between the objects. If you use a `/` in the object prefix, they can be displayed as virtual folders when listing them.

## User interface

<figure><picture><source srcset="/files/Uf1yFbjwkMiIswXkAloN" media="(prefers-color-scheme: dark)"><img src="/files/abhSzgnDjxoygaWZOsrJ" alt="View of the OpenStack destination configuration"></picture><figcaption></figcaption></figure>

To use the OpenStack destination you must fill out the fields: bucket, domain name, tenant name, auth uri, version and region.

Note that the Bucket is sometimes called Container. The version of the protocol depends on your provider. See below for details. Depending on your connection you will need to also add some advanced options to specify an API key or a password.

## URL format for Commandline

### OpenStack v2

If you are using OpenStack with version 2 of the protocol, you can either use an API key or a username/password/tenant combination. To use the password based authentication, use a URL format like this:

```
openstack://<container>/<prefix>
  ?auth-username=<username>
  &auth-password=<password>
  &openstack-tenant-name=<tenant>
  &openstack-authuri=<url to auth endpoint>
```

If you are using an API key, leave out the `--auth-password` and `--openstack-tenant-name` parameters and add in `--openstack-apikey=<apikey>`.

### OpenStack v3

If you are using OpenStack with version 3 of the protocol, you must supply: username, password, domain, and tenant name:

```
openstack://<container>/<prefix>
  ?auth-username=<username>
  &auth-password=<password>
  &openstack-tenant-name=<tenant>
  &openstack-domain-name=<domain>
  &openstack-authuri=<url to keystone server>
  &openstack-version=v3
```

## Region selection

The authentication response will contain a set of endpoints to be used for actual transfers. In some cases, this response can contain multiple possible endpoints, each with a different region. To prefer a specific region, supply this with `--openstack-region`. If any of the returned endpoints have the same region (case-insensitive compare), the first endpoint matching will be selected. If no region is specified, or no region matches, the first region in the response is used.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.duplicati.com/backup-destinations/standard-based-destinations/openstack-destination.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
