- 20.06.2022
- 26 938
- 230
- 36
- Награды
- 10
- Пол
- Муж.
Репутация:
- Автор темы
- Администратор
- Модератор
- Команда форума
- #1
Зачем этот мануал?
С версии XenForo 2.0.0 поддерживается удаленное хранение файлов при помощи . Она называется абстрагированной файловой системой потому что она добавляет "внешний слой" между кодом и файловой системой. Она представляет API для выполнения операций файловой системы, поэтому будь она на локальном диске или находится на удаленной системе, наш код вызывает те же функции, а Flysystem сделает всё остальное.
Как бы это не было полезно, это не самая очевидная вещь для настройки, поэтому это руководство и приложение в виде аддона помогут справиться с необходимой задачей.
Поэтому если вы планируете использовать функцию загрузки видео в XF 2.1 и вы волнуетесь об увеличении необходимости требований к свободному месту на диске, или вы все ещё на версии 2.0 и вам нужно разгрузить ваши требования к локальному хранилищу, то приступим.
Автозагрузка AWS SDK (только для XF 2.0.x)
Первым делом сделаем автозагрузку AWS SDK.
Откройте файл src/config.php на вашем сервере форума.
Существует несколько поставщиков (vendor), которые были включены в прикрепленный ранее аддон. Следующие строки гарантируют, что они все уже загружены. Мы делаем это для того, что нам нужно чтобы файлы были доступны как можно раньше:
Подготовка к настройке DigitalOcean Spaces
Сначала рассмотрим наиболее простой способ в настройке. Инструкция для Amazon S3 находится ниже.
Теперь нужно получить данные для доступа к API. Делаем следующее:
Настройка DigitalOcean Spaces для XF
Теперь нужно настроить XF для использования DigitalOcean Spaces как файловое хранилище. Начнем с папки data (содержит миниатюры вложений и аватары).
Открываем файл src/config.php
Сначала необходимо настроить клиент Amazon S3 (DigitalOcean Spaces API совместим с Amazon AWS SDK).
Весь код копируем в конец файла, не забываем менять xftest на свой.
Используем анонимную функцию, чтобы мы могли использовать её повторно в коде:
В поля key и secret вставляем ранее полученные данные на предыдущем этапе. Регион (поле region) должно быть взято с адреса конечной точки. Он является частью адреса, начинается после первой точки в адресе, в нашем случае это ams3. Конечная точка (поле endpoint) то же самое, что и адрес конечной точки, только без уникального имени.
Далее настраиваем адаптер Flysystem (для использования клиента S3):
Теперь файлы будут храниться в папке data на нашем удаленном хранилище.
Теперь нужно чтобы ссылки миниатюр и аватаров ссылались на верный адрес:
Теперь все адреса миниатюр и аватарок будут ссылаться на удаленное хранилище. О перемещении всех существующих файлов будет описано позже.
Необходимо проверить то, что мы настроили всё правильно. Загрузите новый аватар и проверьте, сохранилась ли она на удаленном хранилище:
Теперь нужно настроить для папки internal_data, хранящая вложения и остальные вещи, которые должны быть закрыты для общего доступа. Добавляем:
Подготовка к настройке Amazon S3
Настройка Amazon S3 для XF
Теперь нужно настроить XF для использования Amazon S3 как файловое хранилище. Начнем с папки data (содержит миниатюры вложений и аватары).
Открываем файл src/config.php
Сначала необходимо настроить клиент Amazon S3.
Весь код копируем в конец файла, не забываем менять xftest на свой.
Используем анонимную функцию, чтобы мы могли использовать её повторно в коде:
В поля key и secret вставляем ранее полученные данные на предыдущем этапе. Регион (поле region) должно быть взято с адреса конечной точки.
Далее настраиваем адаптер Flysystem (для использования клиента S3):
Теперь файлы будут храниться в папке data на нашем удаленном хранилище.
Теперь нужно чтобы ссылки миниатюр и аватаров ссылались на верный адрес:
Теперь все адреса миниатюр и аватарок будут ссылаться на удаленное хранилище. О перемещении всех существующих файлов будет описано позже.
Необходимо проверить то, что мы настроили всё правильно. Загрузите новый аватар и проверьте, сохранилась ли она на удаленном хранилище:
Теперь нужно настроить для папки internal_data, хранящая вложения и остальные вещи, которые должны быть закрыты для общего доступа. Добавляем:
Перемещение существующих файлов на DigitalOcean Spaces или Amazon S3
Итак, теперь файлы у нас хранятся на удаленном хранилище. Но что насчет существующих файлов?
Существует несколько методов для совершения этого процесса, но, пожалуй, лучший подход - использование инструмента под названием , являющаяся популярным кросс-платформенным консольным инструментом для управления S3 и S3-совместимых хранилищ.
Устанавливаем s3cmd на ваш сервер и запускаем команду копирования файлов в "новый дом"
Ссылка на использование s3cmd:
Примечание: При копировании файлов необходимо сделать их общедоступными. Вам необходимо настроить списки контроля доступа (ACL) на время пока вы копируете файлы:
С версии XenForo 2.0.0 поддерживается удаленное хранение файлов при помощи . Она называется абстрагированной файловой системой потому что она добавляет "внешний слой" между кодом и файловой системой. Она представляет API для выполнения операций файловой системы, поэтому будь она на локальном диске или находится на удаленной системе, наш код вызывает те же функции, а Flysystem сделает всё остальное.
Как бы это не было полезно, это не самая очевидная вещь для настройки, поэтому это руководство и приложение в виде аддона помогут справиться с необходимой задачей.
Поэтому если вы планируете использовать функцию загрузки видео в XF 2.1 и вы волнуетесь об увеличении необходимости требований к свободному месту на диске, или вы все ещё на версии 2.0 и вам нужно разгрузить ваши требования к локальному хранилищу, то приступим.
Автозагрузка AWS SDK (только для XF 2.0.x)
Первым делом сделаем автозагрузку AWS SDK.
Откройте файл src/config.php на вашем сервере форума.
Существует несколько поставщиков (vendor), которые были включены в прикрепленный ранее аддон. Следующие строки гарантируют, что они все уже загружены. Мы делаем это для того, что нам нужно чтобы файлы были доступны как можно раньше:
Скрытое содержимое доступно для зарегистрированных пользователей!
Подготовка к настройке DigitalOcean Spaces
Сначала рассмотрим наиболее простой способ в настройке. Инструкция для Amazon S3 находится ниже.
- Заходим на страницу , регистрируемся или авторизуемся там.
- Если вы новичек в DigitalOcean, то вам потребуется выбрать тариф и способы оплаты.
- Создаем новый проект.
- Нажимаем на ссылку "Start using Spaces".
- Выберите регион сервера (пример - Amsterdam).
- Оставьте "Restrict File Listing" отмеченным.
- Введите уникальное имя (пример - xftest).
- Нажмите "Create a space"
Теперь нужно получить данные для доступа к API. Делаем следующее:
- Нажимаем "Manage" в левой панели.
- Выбираем "API".
- В разделе "Spaces access keys" нажимаем "Generate New Key".
- Введите имя ключа (пример - xftest) и сохраните.
Настройка DigitalOcean Spaces для XF
Теперь нужно настроить XF для использования DigitalOcean Spaces как файловое хранилище. Начнем с папки data (содержит миниатюры вложений и аватары).
Открываем файл src/config.php
Сначала необходимо настроить клиент Amazon S3 (DigitalOcean Spaces API совместим с Amazon AWS SDK).
Весь код копируем в конец файла, не забываем менять xftest на свой.
Используем анонимную функцию, чтобы мы могли использовать её повторно в коде:
Для просмотра скрытого содержимого вы должны войти или зарегистрироваться.
В поля key и secret вставляем ранее полученные данные на предыдущем этапе. Регион (поле region) должно быть взято с адреса конечной точки. Он является частью адреса, начинается после первой точки в адресе, в нашем случае это ams3. Конечная точка (поле endpoint) то же самое, что и адрес конечной точки, только без уникального имени.
Далее настраиваем адаптер Flysystem (для использования клиента S3):
Для просмотра скрытого содержимого вы должны войти или зарегистрироваться.
Теперь файлы будут храниться в папке data на нашем удаленном хранилище.
Теперь нужно чтобы ссылки миниатюр и аватаров ссылались на верный адрес:
Скрытое содержимое доступно для зарегистрированных пользователей!
Теперь все адреса миниатюр и аватарок будут ссылаться на удаленное хранилище. О перемещении всех существующих файлов будет описано позже.
Необходимо проверить то, что мы настроили всё правильно. Загрузите новый аватар и проверьте, сохранилась ли она на удаленном хранилище:

Теперь нужно настроить для папки internal_data, хранящая вложения и остальные вещи, которые должны быть закрыты для общего доступа. Добавляем:
Для просмотра скрытого содержимого вы должны войти или зарегистрироваться.
Подготовка к настройке Amazon S3
- Переходим на страницу , регистрируемся или авторизуемся.
- В разделе "AWS services" введи "S3" для перехода к "S3 Console".
- Нажми "Create bucket".
- Введи имя для bucket (пример - xftest).
- Выбери регион (пример - EU London).
- Выберите дополнительные параметры по умолчанию.
- Переходим в "IAM"
- Нажимаем "Add user".
- Введи имя пользователя (пример - xftest).
- Выбери тип доступа (access type) "Programmatic".
- Чтобы установить права, выбери вкладку "Attach existing policies directly", затем "Create policy".
- IAM и другие политики и права могут быть довольно пугающими. Мы поступим немного проще, даже если вы имеете другие требования. На этой странице есть вкладка "JSON. Вставьте это туда, замените YOUR-BUCKET-NAME на ваше название bucket, введенное ранее:
Для просмотра скрытого содержимого вы должны войти или зарегистрироваться.
- Нажмите "Review Policy", дайте имя и сохраните.
- Вернитесь назад к странице "Add user", нажмите кнопку "Refresh" и найдите политику, которую вы только что создали.
- Нажмите "Next", потом "Create User"
Настройка Amazon S3 для XF
Теперь нужно настроить XF для использования Amazon S3 как файловое хранилище. Начнем с папки data (содержит миниатюры вложений и аватары).
Открываем файл src/config.php
Сначала необходимо настроить клиент Amazon S3.
Весь код копируем в конец файла, не забываем менять xftest на свой.
Используем анонимную функцию, чтобы мы могли использовать её повторно в коде:
Скрытое содержимое доступно для зарегистрированных пользователей!
В поля key и secret вставляем ранее полученные данные на предыдущем этапе. Регион (поле region) должно быть взято с адреса конечной точки.
Далее настраиваем адаптер Flysystem (для использования клиента S3):
Скрытое содержимое доступно для зарегистрированных пользователей!
Теперь файлы будут храниться в папке data на нашем удаленном хранилище.
Теперь нужно чтобы ссылки миниатюр и аватаров ссылались на верный адрес:
Скрытое содержимое доступно для зарегистрированных пользователей!
Теперь все адреса миниатюр и аватарок будут ссылаться на удаленное хранилище. О перемещении всех существующих файлов будет описано позже.
Необходимо проверить то, что мы настроили всё правильно. Загрузите новый аватар и проверьте, сохранилась ли она на удаленном хранилище:

Теперь нужно настроить для папки internal_data, хранящая вложения и остальные вещи, которые должны быть закрыты для общего доступа. Добавляем:
Скрытое содержимое доступно для зарегистрированных пользователей!
Перемещение существующих файлов на DigitalOcean Spaces или Amazon S3
Итак, теперь файлы у нас хранятся на удаленном хранилище. Но что насчет существующих файлов?
Существует несколько методов для совершения этого процесса, но, пожалуй, лучший подход - использование инструмента под названием , являющаяся популярным кросс-платформенным консольным инструментом для управления S3 и S3-совместимых хранилищ.
Устанавливаем s3cmd на ваш сервер и запускаем команду копирования файлов в "новый дом"
Ссылка на использование s3cmd:
Примечание: При копировании файлов необходимо сделать их общедоступными. Вам необходимо настроить списки контроля доступа (ACL) на время пока вы копируете файлы:
Вложения
Последние темы в этом разделе:
- Баннеры GTA SA + исходник для xenforo
- Как изменить цвет баннеров на форуме XenForo
- Слив баннеров Namalsk rp/Cyber Russia для Xenforo
- Скрипт префиксов с 1wmobile для Xenforo
- Отображение информации о профиле Steam для Xenforo
- Делаем баннер со скидкой на ресурсы в xenforo
- Скрипт Позволяет добавить систему вкладок на форум Xenforo
- Пользовательский постбит дизайн с эффектом наведения курсора для Xenforo
- Смайлы для XenForo 2000 шт
- Xenforo 2.2.17 Release Nulled