Движок хранения: S3 (Pro)
File storage: S3(Pro)Professional Edition+Введение
На базе плагина Менеджер файлов этот плагин добавляет поддержку типов файлового хран илища, совместимых с протоколом S3. Любое объектное хранилище, поддерживающее протокол S3, можно легко интегрировать, например: Amazon S3, Aliyun OSS, Tencent COS, MinIO, Cloudflare R2 и т. п., что дополнительно повышает совместимость и гибкость сервисов хранения файлов.
Возможности
-
Загрузка на стороне клиента: процесс загрузки файлов не проходит через сервер NocoBase, а напрямую обращается к сервису хранения файлов, обеспечивая более эффективную и быструю загрузку.
-
Приватный доступ: при доступе к файлам все URL являются подписанными временными адресами, что обеспечивает безопасность и ограничение времени доступа.
Сценарии использования
-
Управление коллекцией файлов: централизованное управление и хранение всех загруженных файлов; поддержка разных типов файлов и способов хранения для удобной классификации и поиска.
-
Хранение в поле вложения: используется для хранения данных вложений, загруженных в формах или записях; поддерживает связь с конкретными записями данных.
Настройка плагина
-
Включите плагин Движок хранения: S3 (Pro) (plugin-file-storage-s3-pro).
-
Нажмите "Настройки -> Менеджер файлов", чтобы перейти в настройки менеджера файлов.
-
Нажмите кнопку "Добавить новый" и выберите "S3 Pro".

- После появления всплывающего окна вы увидите форму со множеством полей. Вы можете использовать последующую документацию, чтобы получить нужные параметры для соответствующего файлового сервиса и корректно заполнить форму.

Настройка поставщика услуг
Amazon S3
Создание бакета
-
Откройте консоль Amazon S3.
-
Нажмите кнопку "Create bucket" справа.

- Укажите Bucket Name, остальные поля можно оставить по умолчанию. Прокрутите страницу вниз и нажмите кнопку "Create", чтобы завершить создание бакета.


Настройка CORS
- В списке бакетов найдите созданный бакет и нажмите на него, чтобы открыть страницу сведений.

- Перейдите на вкладку
Permission, затем прокрутите вниз до раздела конфигурации CORS.


- Введите следующую конфигурацию (при необходимости скорректируйте под свои требования) и сохраните.

Получение AccessKey и SecretAccessKey
- Нажмите кнопку
Security credentialsв правом верхнем углу страницы.

- Прокрутите страницу до раздела
Access Keysи нажмите кнопкуCreate Access Key.

- Подтвердите соглашение (в примере используется корневая учетная запись; в рабочей среде рекомендуется использовать IAM).

- Сохраните отображаемые значения Access key и Secret access key.

Получение параметров и настройка
-
Используйте значения
AccessKey IDиAccessKey Secret, полученные на предыдущем шаге. -
Перейдите на панель свойств страницы сведений о бакете, чтобы получить
Bucket nameиRegion.

Публичный доступ (опционально)
Это дополнительная настройка. Используйте её, когда нужно сделать загруженные файлы полностью публичными.
- Перейдите на вкладку
Permissions(Permissions), прокрутите до блокаObject Ownership(Object Ownership), нажмитеEdit(Edit) и включите ACLs.

- Прокрутите до раздела
Block public access, нажмитеEditи разрешите управление доступом через ACL.

- Включите опцию
Публичный доступв настройках NocoBase.
Настройка превью миниатюр (опционально)
Эта настройка нео бязательна и используется для оптимизации размера или визуального эффекта предпросмотра изображений. Обратите внимание, что такое развертывание может повлечь дополнительные затраты. Конкретные тарифы смотрите в условиях AWS.
-
Перейдите на страницу Dynamic Image Transformation for Amazon CloudFront.
-
Нажмите кнопку
Launch in the AWS Consoleв нижней части страницы, чтобы начать развертывание решения.
-
Следуйте инструкциям мастера развертывания. Обратите внимание на следующие моменты:
- При создании стека укажите имя Amazon S3 бакета, в котором находятся исходные изображения. Введите имя бакета, созданного ранее.
- Если вы выбрали развертывание демо-интерфейса (demo UI), после развертывания вы сможете протестировать функции обработки изображений через этот интерфейс. В консоли AWS CloudFormation выберите свой стек, перейдите на вкладку
Outputs, найдите значение, соответствующее ключуDemoUrl, и перейдите по ссылке. - Это решение использует библиотеку
sharpдля Node.js для эффективной обработки изображений. Исходный код можно скачать из репозитория GitHub и при необходимости изменить.

-
После завершения конфигурации дождитесь, пока статус развертывания изменится на
CREATE_COMPLETE. -
В настройках NocoBase обратите внимание на следующее:
Правила для миниатюр: укажите параметры обработки изображений, например?width=100. Подробности см. в документации AWS.Конечная точка доступа: введите значениеOutputs -> ApiEndpointпосле завершения развертывания.Стиль полного URL доступа: выберите значение Игнорировать (так как имя бакета уже было указано в конфигурации и не требуется для доступа).

Пример конфигурации

Aliyun OSS
Создание бакета
- Откройте консоль OSS

- В левом меню нажмите "Buckets", затем нажмите кнопку "Create Bucket", чтобы начать создание бакета.

-
Заполните информацию о бакете и нажмите кнопку Create.
-
Имя Bucket Name выберите в соответствии с вашими бизнес-требованиями.
-
Выберите Region, наиболее близкий к вашим пользователям.
-
Остальные параметры можно оставить по умолчанию или настроить по необходимости.
-

Настройка CORS
- Перейдите на страницу сведений о бакете, созданном на предыдущем шаге.

- В центральном меню нажмите "Content Security -> CORS".

- Нажмите кнопку "Create Rule", заполните необходимые поля, прокрутите вниз и нажмите "OK". Вы можете ориентироваться на скриншот ниже или задать более детальные параметры.

Получение AccessKey и SecretAccessKey
- Нажмите "AccessKey" под аватаром аккаунта в правом верхнем углу.

-
В демонстрационных целях AccessKey создается с помощью основной учетной записи. В рабочей среде рекомендуется использовать RAM для создания AccessKey. Подробности см. в https://www.alibabacloud.com/help/en/ram/user-guide/create-an-accesskey-pair
-
Нажмите кнопку "Create AccessKey".

- Пройдите проверку учетной записи.

- Сохраните отображаемые значения Access key и Secret access key.

Получение параметров и настройка
-
Используйте значения AccessKey ID и AccessKey Secret, полученные на предыдущем шаге.
-
Перейдите на страницу сведений о бакете, чтобы получить имя Bucket.

- Прокрутите вниз, чтобы получить значение Region (окончание ".aliyuncs.com" указывать не нужно).

- Получите значение endpoint и добавьте префикс https:// при вводе в NocoBase.

Настройка превью миниатюр (опционально)
Эта настройка необязательна и используется только в случае необходимости оптимизировать размер или эффект предпросмотра изображений.
-
Укажите параметры, св язанные с
Правилами для миниатюр. Для конкретных настроек параметров см. Image Processing Parameters. -
Значения
Стиль полного URL загрузкииСтиль полного URL доступаможно оставить одинаковыми.
Пример настройки

MinIO
Создание бакета
- В левом меню нажмите Buckets, затем нажмите Create Bucket, чтобы перейти на страницу создания.
- Введите имя бакета и нажмите кнопку Save.
Получение AccessKey и SecretAccessKey
- Перейдите в раздел Access Keys и нажмите кнопку Create access key, чтобы перейти на страницу создания.

- Нажмите кнопку Save.

- Сохраните значения Access Key и Secret Key из всплывающего окна для дальнейшей конфигурации.

Настройка параметров
-
Перейдите на страницу Менеджер файлов в NocoBase.
-
Нажмите кнопку Добавить новый и выберите S3 Pro.
-
Заполните форму:
- Идентификатор ключа доступа и секрет ключа доступа: используйте значения, сохранённые на предыдущем шаге.
- Регион: для локально развёрнутого MinIO понятие региона отсутствует, поэтому можно указать
auto. - Конечная точка: укажите доменное имя или IP-адрес вашего развёртывания.
- Значение
Стиль полного URL доступанеобходимо установить вСтиль пути.
Пример настройки

Tencent COS
Вы можете ориентироваться на конфигурацию файловых сервисов, рассмотренных выше, так как логика настройки аналогична.
Пример конфигурации

Cloudflare R2
Настройка аналогична конфигурации указанных выше файловых сервисов.
Пример конфигурации


