---
title: "S3 Domains"
sidebar_label: "Domains"
description: "Assigning S3 domains and working with them: public bucket domains, custom domains, CDN domains, S3 API, Swift API, FTP host"
sidebar_position: 2
---

import Formbricks from '@theme/MDXComponents/Formbricks';
import { CustomTable } from '@selectel/docux/components';
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import { TabItemLabel } from '@selectel/docux/components';
import TrashIcon from '@selectel/docux/icons/trash';
import UserDomains from '@site/i18n/en/docusaurus-plugin-content-docs/current/_partials/s3/user-domains.mdx'

<head>
  <meta name="robots" content="noindex, nofollow, noarchive" />
</head>

# Domains in S3

S3 uses public domains, domains for API access, and FTP access.

You can retrieve storage objects via public domains:

* [the public domain of the bucket](#bucket-public-domain);
* [custom domains](#user-domain);
* [CDN domains](#cdn-domain).

You can [obtain a link to an object](/s3/objects/obtain-link-to-object.mdx) in a public bucket via its public domains. A link to an object in a private bucket can be [generated](/s3/objects/obtain-link-to-object.mdx#obtain-link-to-object-in-private-bucket) via [the bucket's public domain](#bucket-public-domain) if necessary.

You can access the storage and manage buckets and objects via:

* [Swift API domains](#swift-api-domains);
* [S3 API domains](#s3-api-domains);
* [an FTP host](#ftp-host).

## Bucket public domains \{#bucket-public-domain}

The bucket's public domain is used for distributing objects from public buckets. Unauthorized read access to the bucket is provided through the bucket's public domain.

You can view the bucket's public domain in the [control panel](https://my.selectel.ru/storage/): from the top menu, click **Products** → **S3** → section **Buckets** → bucket page → tab **Domains** → block **Primary domain**.

The domain depends on the country where the bucket's [region](/infrastructure/locations.mdx#region) is located.

<Tabs queryString="public-domains">
  <TabItem value="ru" default>
    <TabItemLabel>Russia</TabItemLabel>

    <CustomTable>
      <table data-sticky>
        <thead>
          <tr>
            <th>Regions</th><th>Pools</th><th>Bucket public domain</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <th>St. Petersburg</th><th>ru-1 <br /> ru-3</th><td rowspan="2">`<uuid>.selstorage.ru`</td>
          </tr>

          <tr>
            <th>Moscow</th><th>ru-6 <br /> ru-7<br /> gis-1</th>
          </tr>
        </tbody>
      </table>
    </CustomTable>
  </TabItem>

  <TabItem value="uz">
    <TabItemLabel>Uzbekistan</TabItemLabel>

    <CustomTable>
      <table data-sticky>
        <thead>
          <tr>
            <th>Regions</th><th>Pools</th><th>Bucket public domain</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <th>Tashkent</th><td>uz-2</td><td>`<uuid>.srvstatic.uz`</td>
          </tr>
        </tbody>
      </table>
    </CustomTable>
  </TabItem>

  <TabItem value="kz">
    <TabItemLabel>Kazakhstan</TabItemLabel>

    <CustomTable>
      <table data-sticky>
        <thead>
          <tr>
            <th>Regions</th><th>Pools</th><th>Bucket public domain</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <th>Almaty</th><td>kz-1</td><td>`<uuid>.srvstatic.kz`</td>
          </tr>
        </tbody>
      </table>
    </CustomTable>
  </TabItem>
</Tabs>

In the domains `<uuid>` is a unique bucket identifier. The identifier is generated when a public bucket is created or when a bucket type is changed to public.

Links for objects in public buckets always work. You can also obtain a link to an object in a private bucket via the bucket's public domain; to do this, you need to [create](/s3/objects/obtain-link-to-object.mdx#obtain-link-to-object-in-private-bucket) it.

If you want objects in a bucket to be accessible from your domain, connect a [custom domain](#user-domain).

## Custom domains \{#user-domain}

<UserDomains />

Read more about working with custom domains in the [Managing custom domains](/s3/manage/manage-user-domains.mdx) guide.

### Domains for DNS records \{#dns-domains}

Domains for DNS records are used when [adding custom domains from external DNS hosting providers](/s3/manage/manage-user-domains.mdx#add-external-dns-user-domain).

The domain depends on the [pool](/infrastructure/locations.mdx#pool) in which the bucket is located.

<Tabs queryString="dns-domains">
  <TabItem value="spb" default>
    <TabItemLabel>St. Petersburg</TabItemLabel>

    <CustomTable>
      <table data-sticky>
        <thead>
          <tr>
            <th>Pool</th><th>Domain for DNS records</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td>ru-1</td><td>`access.ru-1.storage.selcloud.ru`</td>
          </tr>

          <tr>
            <td>ru-3</td><td>`access.ru-3.storage.selcloud.ru`</td>
          </tr>
        </tbody>
      </table>
    </CustomTable>
  </TabItem>

  <TabItem value="msk">
    <TabItemLabel>Moscow</TabItemLabel>

    <CustomTable>
      <table data-sticky>
        <thead>
          <tr>
            <th>Pool</th><th>Domain for DNS records</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td>ru-6</td><td>`access.ru-6.storage.selcloud.ru`</td>
          </tr>

          <tr>
            <td>ru-7</td><td>`access.ru-7.storage.selcloud.ru`</td>
          </tr>

          <tr>
            <td>gis-1</td><td>`access.gis-1.storage.selcloud.ru`</td>
          </tr>
        </tbody>
      </table>
    </CustomTable>
  </TabItem>

  <TabItem value="tas">
    <TabItemLabel>Tashkent</TabItemLabel>

    <CustomTable>
      <table data-sticky>
        <thead>
          <tr>
            <th>Pool</th><th>Domain for DNS records</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td>uz-2</td><td>`access.uz-2.storage.uz`</td>
          </tr>
        </tbody>
      </table>
    </CustomTable>
  </TabItem>

  <TabItem value="alm">
    <TabItemLabel>Almaty</TabItemLabel>

    <CustomTable>
      <table data-sticky>
        <thead>
          <tr>
            <th>Pool</th><th>Domain for DNS records</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td>kz-1</td><td>`access.kz-1.srvstorage.kz`</td>
          </tr>
        </tbody>
      </table>
    </CustomTable>
  </TabItem>
</Tabs>

## CDN domain \{#cdn-domain}

Objects from a public bucket can be distributed via CDN — to do this, you need to select the S3 bucket as the content source when [creating a CDN resource](/cdn/create-resource.mdx). An object distributed via CDN can be obtained via the [default domain](/cdn/resources/domains.mdx#default-domain), which is generated in the CDN.

## Swift API domains \{#swift-api-domains}

The Swift API domain is an endpoint that can be used for working with buckets and uploading objects via [Swift API](/api/object-storage-swift/). The domain depends on the [pool](/infrastructure/locations.mdx#pool) where the bucket is located.

Authorized access is required to work with private buckets via Swift API domains.

<Tabs queryString="swift-domains">
  <TabItem value="spb" default>
    <TabItemLabel>St. Petersburg</TabItemLabel>

    <CustomTable>
      <table data-sticky>
        <thead>
          <tr>
            <th>Pool</th><th>Swift API domain</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td>ru-1</td><td>`swift.ru-1.storage.selcloud.ru`</td>
          </tr>

          <tr>
            <td>ru-3</td><td>`swift.ru-3.storage.selcloud.ru`</td>
          </tr>
        </tbody>
      </table>
    </CustomTable>
  </TabItem>

  <TabItem value="msk">
    <TabItemLabel>Moscow</TabItemLabel>

    <CustomTable>
      <table data-sticky>
        <thead>
          <tr>
            <th>Pool</th><th>Swift API domain</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td>ru-6</td><td>`swift.ru-6.storage.selcloud.ru`</td>
          </tr>

          <tr>
            <td>ru-7</td><td>`swift.ru-7.storage.selcloud.ru`</td>
          </tr>

          <tr>
            <td>gis-1</td><td>`swift.gis-1.storage.selcloud.ru`</td>
          </tr>
        </tbody>
      </table>
    </CustomTable>
  </TabItem>

  <TabItem value="tas">
    <TabItemLabel>Tashkent</TabItemLabel>

    <CustomTable>
      <table data-sticky>
        <thead>
          <tr>
            <th>Pool</th><th>Swift API domain</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td>uz-2</td><td>`swift.uz-2.srvstorage.uz`</td>
          </tr>
        </tbody>
      </table>
    </CustomTable>
  </TabItem>

  <TabItem value="alm">
    <TabItemLabel>Almaty</TabItemLabel>

    <CustomTable>
      <table data-sticky>
        <thead>
          <tr>
            <th>Pool</th><th>Swift API domain</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td>kz-1</td><td>`swift.kz-1.srvstorage.kz`</td>
          </tr>
        </tbody>
      </table>
    </CustomTable>
  </TabItem>
</Tabs>

## S3 API domains \{#s3-api-domains}

The S3 API domain is an endpoint that can be used for working with buckets and uploading objects via [S3 API](/api/object-storage-s3/), as well as for connecting via the S3 protocol using [storage tools](/s3/tools/) (except for FTP). The domain depends on the [pool](/infrastructure/locations.mdx#pool) where S3 is located.

Only authorized access is possible via S3 API domains.

<Tabs queryString="s3-domains">
  <TabItem value="spb" default>
    <TabItemLabel>St. Petersburg</TabItemLabel>

    <CustomTable>
      <table data-sticky>
        <thead>
          <tr>
            <th>Pool</th><th>S3 API domain</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td>ru-1</td><td>`s3.ru-1.storage.selcloud.ru`</td>
          </tr>

          <tr>
            <td>ru-3</td><td>`s3.ru-3.storage.selcloud.ru`</td>
          </tr>
        </tbody>
      </table>
    </CustomTable>
  </TabItem>

  <TabItem value="msk">
    <TabItemLabel>Moscow</TabItemLabel>

    <CustomTable>
      <table data-sticky>
        <thead>
          <tr>
            <th>Pool</th><th>S3 API domain</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td>ru-6</td><td>`s3.ru-6.storage.selcloud.ru`</td>
          </tr>

          <tr>
            <td>ru-7</td><td>`s3.ru-7.storage.selcloud.ru`</td>
          </tr>

          <tr>
            <td>gis-1</td><td>`s3.gis-1.storage.selcloud.ru`</td>
          </tr>
        </tbody>
      </table>
    </CustomTable>
  </TabItem>

  <TabItem value="tas">
    <TabItemLabel>Tashkent</TabItemLabel>

    <CustomTable>
      <table data-sticky>
        <thead>
          <tr>
            <th>Pool</th><th>S3 API domain</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td>uz-2</td><td>`s3.uz-2.srvstorage.uz`</td>
          </tr>
        </tbody>
      </table>
    </CustomTable>
  </TabItem>

  <TabItem value="alm">
    <TabItemLabel>Almaty</TabItemLabel>

    <CustomTable>
      <table data-sticky>
        <thead>
          <tr>
            <th>Pool</th><th>S3 API domain</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td>kz-1</td><td>`s3.kz-1.srvstorage.kz`</td>
          </tr>
        </tbody>
      </table>
    </CustomTable>
  </TabItem>
</Tabs>

### Addressing \{#addressing}

When using S3 API domains, two [addressing types](/s3/buckets/addressing-types.mdx) are available. The addressing type determines how you specify the bucket name when working with the S3 API.

<CustomTable>
  <table data-sticky>
    <thead>
      <tr>
        <th>Path-style addressing</th><th>Virtual-hosted addressing</th>
      </tr>
    </thead>

    <tbody>
      <tr>
        <td>`<s3_domain>` / `<bucket_name>`</td><td>`<bucket_name>.<s3_domain>`</td>
      </tr>
    </tbody>
  </table>
</CustomTable>

## FTP host \{#ftp-host}

:::info

FTP connection is available only for buckets in [pools](/infrastructure/locations.mdx#pool) ru-1 and ru-7.

:::

The FTP host is used to connect to S3 via the [FTP protocol](/s3/tools/ftp.mdx) with TLS/SSL explicit encryption (TLS/SSL Explicit encryption).

<Tabs queryString="ftp-hosts">
  <TabItem value="spb" default>
    <TabItemLabel>St. Petersburg</TabItemLabel>

    <CustomTable>
      <table data-sticky>
        <thead>
          <tr>
            <th>Pool</th><th>Host</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td>ru-1</td><td>`ftp.ru-1.storage.selcloud.ru`</td>
          </tr>
        </tbody>
      </table>
    </CustomTable>
  </TabItem>

  <TabItem value="msk" label="Moscow" default>
    <CustomTable>
      <table data-sticky>
        <thead>
          <tr>
            <th>Pool</th><th>Host</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <td>ru-7</td><td>`ftp.ru-7.storage.selcloud.ru`</td>
          </tr>
        </tbody>
      </table>
    </CustomTable>
  </TabItem>
</Tabs>

<Formbricks />
