Alibaba Cloud OSS бакет, как локальный каталог

by, Yevgeniy Goncharov, 22-Jan-2022
  • linux
  • oss
  • cloud
  • ossfs

Ранее писал как синхронизировать бэкапы в облачное хранилище Alibaba OSS, в том случае использовался MinIO, в рамках данной статьи базово расскажу как использовать клиент ossfs, создать OSS бакет, создать пользователя и предоставить этому пользователю доступ в бакет при помощи пары access/secret ключей и собственно клиента ossfs.

Ossfs - это утилита из набора OSS tools (ссылка в конце статьи) которая позволяет монтировать бакет к локальной файловой системе, что в свою очередь позволяет выполнять операции с OSS объектами (копировать, удалять файлы, манипулировать разрешениями и атрибутами объектов ФС)

Создание OSS бакета

Для дальнейших манипуляций, первым делом создадим бакет на странице https://oss.console.aliyun.com/bucket:

mount alibaba oss bucket to local

Указав имя, регион, тип хранилища, ACL:

create bucket in alibaba cloud

На этом пока с бакетом все.

Создание пользователя

Создать пользователя можно на странице https://ram.console.aliyun.com/users где можно указать имя и режим доступа, в данном случае определим типа доступа, как "Programmatic Access":

how to create alibab bucket user

Далее необходимо создать ключи доступа для данного пользователя, это можно сделать на странице свойств пользователя при помощи кнопки "Create Access Key":

Настройка доступа к OSS

Производится на странице свойств OSS - Access Control List (ACL) - Configure:

В разделе Bucket Policy - Authorize необходимо выбрать RAM Users и созданного ранее пользователя:

authorize alibab bucket user

Установка OSSFS

Установочные пакеты доступны на официальной странице ossfs документации (ссылка в конце статьи), на сегодня доступна версия приложения 1.80.6, которую можно установить штатными средствами используемого дистрибутива, как например в CentOS:

dnf -y install http://gosspublic.alicdn.com/ossfs/ossfs_1.80.6_centos7.0_x86_64.rpm

Для работы с монтируемым бакетом еще понадобится fuse:

dnf -y install fuse

Далее необходимо сохранить ключи в файл с соответствующими разрешениями:

echo "test-bucket:<key ID>:<secret key>" >> /etc/passwd-ossfs  
chmod 640 /etc/passwd-ossfs

Создать каталог монтирования:

mkdir -p /tmp/ossbucket

И "прицепить" к нему собственно бакет:

/usr/local/bin/ossfs test-bucket /tmp/ossbucket -ourl=https://oss-eu-central-1.aliyuncs.com

Проверить корректность подключения можно командой mount:

ossfs on /tmp/ossbucket type fuse.ossfs (rw,nosuid,nodev,relatime,user_id=0,group_id=0)

Тестирование

Для чистоты эксперимента создадим бэкап произвольного каталога или просто скопируем любой файл в каталог /tmp/ossbucket:

touch /tmp/ossbucket/Hello_from_Sys-Adm.in.txt

Проверяем:

test sync alibaba oss bucket

Автомонтирование

Есть несколько способов, используем один из них на примере init.d:

nano /etc/init.d/ossfs

С содержимым:

#! /bin/bash  
/usr/local/bin/ossfs test-bucket /tmp/ossbucket -ourl=https://oss-eu-central-1.aliyuncs.com

Настроим разрешения для запуска:

chmod a+x /etc/init.d/ossfs

Включим:

chkconfig ossfs on

Можно пользоваться

Размонтирование

Можно произвести при помощи команды fusemount:

fusermount -u /tmp/ossfs

Доп. Ссылки