---
title: 's3fs'
sidebar_label: 's3fs'
sidebar_position: 6
description: 'Как примонтировать бакет с помощью s3fs и работать с ним как с папкой на Linux и macOS'
---

import Formbricks from '@theme/MDXComponents/Formbricks'
import Tabs from '@theme/Tabs'
import TabItem from '@theme/TabItem'
import {TabItemLabel} from '@selectel/docux/components'
import GrantAccess from '@site/docs/_partials/s3/grant-access.mdx'

# s3fs

s3fs — это программа с открытым исходным кодом для Linux и macOS.
С помощью s3fs можно примонтировать бакет в папку на устройстве и работать с ним как с обычной папкой, пока он примонтирован.

## Настроить s3fs

1. [Установите клиент](#configure-s3fs).
2. [Настройте доступ к S3](#configure-s3-access).
3. [Создайте файл с ключами](#create-file-with-keys).
4. [Монтируйте бакет](#mount-bucket).

### 1. Установить клиент \{#configure-s3fs}

Используйте инструкцию [Installation](https://github.com/s3fs-fuse/s3fs-fuse#installation) в GitHub s3fs-fuse.

### 2. Настроить доступ к S3 \{#configure-s3-access}

<GrantAccess />

### 3. Создать файл с ключами \{#create-file-with-keys}

1. Откройте CLI.

2. В файле `~/.passwd-s3fs` сохраните S3-ключ:

   ```bash
   echo <access_key>:<secret_key> > ~/.passwd-s3fs
   ```

   Укажите:

   * `<access_key>` — значение поля **Access key** из [S3-ключа](/access-control/manage/edit-user-data-or-role.mdx#issue-s3-key);
   * `<secret_key>` — значение поля **Secret key** из S3-ключа.

3. Ограничьте доступ к файлу `~/.passwd-s3fs`:

   ```bash
   chmod 600 ~/.passwd-s3fs
   ```

### 4. Монтировать бакет \{#mount-bucket}

Бакет будет монтирован в папку на вашем устройстве.
При каждой перезагрузке системы бакет будет размонтирован.

Вы можете:

* выполнять разовое монтирование бакета после каждой перезагрузки системы вручную;
* настроить автоматическое монтирование, которое будет выполняться автоматически при каждой загрузке системы.

<Tabs queryString="mounting-type">
  <TabItem value="one-time" default>
    <TabItemLabel>
      Разовое монтирование
    </TabItemLabel>

    1. Откройте CLI.

    2. Создайте пустую папку:

       ```bash
       mkdir ~/<local_folder>
       ```

       Укажите `<local_folder>` — имя папки.

    3. Монтируйте бакет:

       ```bash
       s3fs <bucket_name> <path> -o passwd_file=~/.passwd-s3fs -o allow_other -o use_path_request_style -o endpoint=<pool> -o url=https://<s3_domain>
       ```

       Укажите:

       * `<bucket_name>` — имя бакета;
       * `<path>` — путь до локальной папки, в которую будет монтирован бакет;
       * `-o allow_other` — опционально: параметр, который разрешает доступ к папке с бакетом другим пользователям на устройстве. Если не указать параметр, работать с папкой сможет только текущий пользователь;
       * `-o use_path_request_style` — опционально: параметр, который включает Path-style адресацию. Если не указать параметр, будет использована [Virtual-Hosted адресация](/s3/buckets/addressing-types.mdx);
       * `<pool>` — [пул](/infrastructure/locations.mdx#pool), в котором находится S3;
       * `<s3_domain>` — [домен S3 API](/s3/manage/domains.mdx#s3-api-domains). Домен зависит от [пула](/infrastructure/locations.mdx#pool), в котором находится S3.
  </TabItem>

  <TabItem value="automatic">
    <TabItemLabel>
      Автоматическое монтирование
    </TabItemLabel>

    1. Откройте CLI.

    2. Создайте пустую папку:

       ```bash
       mkdir ~/<local_folder>
       ```

       Укажите `<local_folder>` — имя папки.

    3. Откройте файл `fstab`:

       ```bash
       nano /etc/fstab
       ```

    4. В файл` fstab` добавьте строку:

       ```bash
       s3fs#<bucket_name> <path> fuse allow_other,nonempty,passwd_file=~/.passwd-s3fs,use_path_request_style,endpoint=<pool>,url=https://<s3_domain> 0 0
       ```

       Укажите:

       * `<bucket_name>` — имя бакета;
       * `<path>` — путь до папки, в которую будет монтирован бакет;
       * `allow_other` — опционально: параметр, который разрешает доступ к папке с бакетом другим пользователям на устройстве. Если не указать параметр, работать с папкой сможет только текущий пользователь;
       * `use_path_request_style` — опционально: параметр, который включает Path-style адресацию. Если не указать параметр, будет использована [Virtual-Hosted адресация](/s3/buckets/addressing-types.mdx);
       * `<pool>` — [пул](/infrastructure/locations.mdx#pool), в котором находится S3;
       * `<s3_domain>` — [домен S3 API](/s3/manage/domains.mdx#s3-api-domains). Домен зависит от [пула](/infrastructure/locations.mdx#pool), в котором находится S3.

    5. Закройте файл (**Ctrl+Х**) и сохраните внесенные изменения (**Y**).
  </TabItem>
</Tabs>

<Formbricks />
