Хранилище файлов: S3 (Pro)

Хранилище файлов: S3 (Pro)Professional Edition+

Введение

На основе плагина для управления файлами добавлена поддержка типов файловых хранилищ, совместимых с протоколом S3. Любой сервис объектного хранения, поддерживающий протокол S3, например Amazon S3, Alibaba Cloud OSS, Tencent Cloud COS, MinIO, Cloudflare R2 и другие, может быть легко интегрирован, что повышает совместимость и гибкость служб хранения.

Особенности

  1. Загрузка с клиента: Файлы загружаются непосредственно в службу хранения, минуя сервер NocoBase, что обеспечивает более эффективную и быструю загрузку.

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

Сценарии использования

  1. Управление таблицами файлов: Централизованное управление и хранение всех загруженных файлов с поддержкой различных типов файлов и методов хранения для удобной классификации и поиска.

  2. Хранение вложений в полях: Хранение вложений, загруженных через формы или записи, с возможностью их привязки к конкретным записям данных.

Настройка плагина

  1. Включите плагин plugin-file-storage-s3-pro.

  2. Перейдите в "Setting -> FileManager", чтобы открыть настройки управления файлами.

  3. Нажмите кнопку "Add new" и выберите "S3 Pro".

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

Настройка поставщика услуг

Amazon S3

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

  1. Перейдите в консоль Amazon S3.

  2. Нажмите кнопку "Create bucket" справа.

  1. Заполните поле Bucket Name (имя бакета), остальные поля оставьте по умолчанию, прокрутите страницу вниз и нажмите кнопку "Create", чтобы завершить процесс.

Настройка CORS

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

  1. Перейдите на вкладку "Permission" и прокрутите вниз до раздела настройки CORS.

  1. Введите следующую конфигурацию (при необходимости настройте ее) и сохраните.
[
    {
        "AllowedHeaders": [
            "*"
        ],
        "AllowedMethods": [
            "POST",
            "PUT"
        ],
        "AllowedOrigins": [
            "*"
        ],
        "ExposeHeaders": [
            "ETag"
        ],
        "MaxAgeSeconds": 3000
    }
]

Получение AccessKey и SecretAccessKey

  1. Нажмите кнопку "Security credentials" в правом верхнем углу страницы.

  1. Прокрутите вниз до раздела "Access Keys" и нажмите кнопку "Create Access Key".

  1. Согласитесь с условиями (для демонстрации используется основная учетная запись; в производственной среде рекомендуется использовать IAM).

  1. Сохраните отображаемые Access Key и Secret Access Key.

Получение и настройка параметров

  1. AccessKey ID и AccessKey Secret — это значения, полученные вами на предыдущем шаге. Введите их точно.

  2. Перейдите на панель свойств страницы сведений о бакете, где вы сможете получить информацию об имени бакета (Bucket Name) и регионе (Region).

Публичный доступ (необязательно)

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

  1. На панели "Permissions" прокрутите до "Object Ownership", нажмите "Edit" и включите ACLs.

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

  1. В NocoBase установите флажок "Public access".

Настройка миниатюр (необязательно)

Эта настройка является необязательной и используется, когда вам необходимо оптимизировать размер или эффект предварительного просмотра изображений. Обратите внимание, что это развертывание может повлечь за собой дополнительные расходы. Для получения более подробной информации ознакомьтесь с соответствующими условиями и ценами AWS.

  1. Посетите страницу Dynamic Image Transformation for Amazon CloudFront.

  2. Нажмите кнопку Launch in the AWS Console в нижней части страницы, чтобы начать развертывание.

  1. Следуйте подсказкам для завершения настройки. Особое внимание уделите следующим опциям:
    1. При создании стека вам потребуется указать имя бакета Amazon S3, содержащего исходные изображения. Пожалуйста, введите имя бакета, которое вы создали ранее.
    2. Если вы выбрали развертывание демонстрационного пользовательского интерфейса, после развертывания вы сможете использовать его для тестирования функций обработки изображений. В консоли AWS CloudFormation выберите ваш стек, перейдите на вкладку "Outputs", найдите значение, соответствующее ключу DemoUrl, и нажмите на эту ссылку, чтобы открыть демонстрационный интерфейс.
    3. Это решение использует библиотеку Node.js sharp для эффективной обработки изображений. Вы можете загрузить исходный код из репозитория GitHub и настроить его по мере необходимости.

  1. После завершения настройки дождитесь, пока статус развертывания изменится на CREATE_COMPLETE.

  2. В настройках NocoBase обратите внимание на следующее:

    1. Thumbnail rule: Введите параметры обработки изображений, например ?width=100. Подробности см. в документации AWS.
    2. Access endpoint: Введите значение из Outputs -> ApiEndpoint после развертывания.
    3. Full access URL style: Выберите Ignore (поскольку имя бакета уже было указано при настройке, оно не требуется для доступа).

Пример настройки

Alibaba Cloud OSS

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

  1. Откройте консоль OSS.

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

  1. Заполните данные бакета и нажмите кнопку "Create".

    1. Bucket Name: Выберите в соответствии с вашими бизнес-потребностями.

    2. Region: Выберите ближайший регион для ваших пользователей.

    3. Остальные настройки могут быть оставлены по умолчанию или настроены по вашему усмотрению.

Настройка CORS

  1. Перейдите на страницу сведений о бакете, который вы только что создали.

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

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

Получение AccessKey и SecretAccessKey

  1. Нажмите "AccessKey" под аватаром вашей учетной записи в правом верхнем углу.

  1. Для демонстрационных целей мы создадим AccessKey, используя основную учетную запись. В производственной среде рекомендуется использовать RAM для создания AccessKey. Инструкции см. в документации Alibaba Cloud.

  2. Нажмите кнопку "Create AccessKey".

  1. Завершите проверку учетной записи.

  1. Сохраните отображаемые Access Key и Secret Access Key.

Получение и настройка параметров

  1. AccessKey ID и AccessKey Secret — это значения, полученные на предыдущем шаге.

  2. Перейдите на страницу сведений о бакете, чтобы получить имя бакета (Bucket Name).

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

  1. Получите адрес конечной точки (endpoint) и добавьте префикс https:// при вводе его в NocoBase.

Настройка миниатюр (необязательно)

Эта настройка является необязательной и используется только при необходимости оптимизации размера или эффекта предварительного просмотра изображений.

  1. Заполните соответствующие параметры для Thumbnail rule. Подробные настройки параметров см. в документации Alibaba Cloud по обработке изображений.

  2. Настройки Full upload URL style и Full access URL style должны быть одинаковыми.

Пример настройки

MinIO

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

  1. Нажмите на меню "Buckets" слева -> Нажмите "Create Bucket", чтобы открыть страницу создания.
  2. Введите имя бакета, затем нажмите кнопку "Save".

Получение AccessKey и SecretAccessKey

  1. Перейдите в "Access Keys" -> Нажмите кнопку "Create access key", чтобы открыть страницу создания.

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

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

Настройка параметров

  1. Перейдите на страницу "File manager" в NocoBase.

  2. Нажмите кнопку "Add new" и выберите "S3 Pro".

  3. Заполните форму:

    • AccessKey ID и AccessKey Secret: Используйте значения, сохраненные на предыдущем шаге.
    • Region: В MinIO, развернутом в частном порядке, нет понятия региона; вы можете установить его как "auto".
    • Endpoint: Введите доменное имя или IP-адрес вашей развернутой службы.
    • Необходимо установить Full access URL style в значение "Path-Style".

Пример настройки

Tencent COS

Вы можете настроить его по аналогии с вышеуказанными файловыми службами, логика схожа.

Пример настройки

Cloudflare R2

Вы можете настроить его по аналогии с вышеуказанными файловыми службами, логика схожа.

Пример настройки

Руководство пользователя

Обратитесь к документации плагина для управления файлами.