• Гость, не забудь поделиться своим комменатрием или отзывом по работе Плагина, Стиля или Модификации ✍️ Нам важна любая обратная связь‼️
Using DigitalOcean Spaces or Amazon S3

Модификации Using DigitalOcean Spaces or Amazon S3 2.4.1

Нет прав для скачивания
Те же принципы могут быть применены и к другим адаптерам
  • Автор Автор noname
  • Дата создания Дата создания
Модификации доступны для скачивания пользователям состоящим в группе Прохожий (далее Путник)!
Ознакомиться с условиями повышения можно на этой странице!
Покупая повышение Вы помогаете нашему сообществу развиваться, а мы в свою очередь будем рады радовать новыми дополнениями и их обновлениями!
XenForo Night Mode Plugin

Модификации XenForo Night Mode Plugin

Плагин ночного режима, подготовленный для версий xenforo 2.2.x
[HeBeLe] Xenforo Message profile

Модификации [HeBeLe] Xenforo Message profile

позволяет настраивать профили сообщений
Совместимость с XenForo
  1. XF 2.1
  2. XF 2.2
Видимый копирайт
Нет
Совместимость с версиями XenForo

Загрузка совместима только с XenForo версии 2.1 и выше.

Зачем нужно это руководство?

Начиная с версии XenForo 2.0.0, мы поддерживаем удаленное хранение файлов с использованием абстрактной файловой системы Flysystem. Она называется абстрактной файловой системой, поскольку добавляет уровень абстракции между кодом и файловой системой. Это означает, что он предоставляет согласованный API для выполнения операций с файловой системой, так что независимо от того, является ли файловая система локальной файловой системой на основе диска или распределенной и удаленно доступной файловой системой, наш код вызывает одни и те же функции, а Flysystem заботится обо всем остальном.

Как бы это ни было полезно, это не самая очевидная и простая настройка, поэтому данное руководство и прилагаемое дополнение помогут вам в этом.

Итак, если вы планируете использовать функцию загрузки видео в XF 2.1 или более поздней версии и вас беспокоят повышенные требования к дисковому пространству, это поможет.


Сделайте необходимые файлы доступными

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


Перед началом работы

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


Настройка DigitalOcean Spaces

Сначала мы рассмотрим этот процесс, поскольку он наиболее прост в настройке. Если вы предпочитаете использовать Amazon S3, перейдите к разделу "Настройка Amazon S3" ниже.
  1. Перейдите на страницу DigitalOcean Cloud и зарегистрируйтесь или войдите в систему.
  2. На данном этапе, если вы новичок в DigitalOcean, вам может потребоваться настроить выставление счетов.
  3. Теперь вы сможете создать новый проект.
  4. Нажмите на ссылку "Начать использовать Spaces".
  5. Выберите регион, в котором расположен ваш центр обработки данных (я выбрал Амстердам).
  6. Оставьте выбранным параметр "Ограничить список файлов".
  7. Выберите уникальное имя (я выбрал "xftest")
  8. Нажмите "Создать пробел"
Теперь, когда пробел создан, у вас должен быть URL конечной точки, похожий на: https://xftest.ams3.digitaloceanspaces.com. Запишите это на будущее.

Теперь нам нужно создать некоторые учетные данные API. Для этого:
  • Нажмите "Управление" на левой боковой панели.
  • Нажмите "API".
  • В разделе "Ключи доступа к Spaces" нажмите "Создать новый ключ".
  • Введите имя для ключа (опять же, я выбрал "xf-тест") и сохраните.
Это даст вам ключ и секрет. Запишите их.

Настройка XF для использования DigitalOcean Spaces

Теперь нам нужно настроить XF для использования DigitalOcean Spaces для хранения файлов. Мы начнем с того, что обычно помещается в каталог данных в первую очередь. Обычно это включает миниатюры вложений и аватары.

Откройте свой файл src/config.php.

Сначала нам нужно настроить клиент Amazon S3 (DigitalOcean Spaces API совместим с Amazon AWS SDK).

Мы сделаем это с помощью закрытия, чтобы мы могли повторно использовать тот же код, и нам нужно будет ввести его только один раз:
PHP:
$s3 = function()
{
   return new \Aws\S3\S3Client([
      'credentials' => [
         'key' => 'ABC',
         'secret' => '123'
      ],
      'region' => 'ams3',
      'version' => 'latest',
      'endpoint' => 'https://ams3.digitaloceanspaces.com'
   ]);
};

Обратите внимание, что ключ и секрет - это то, что вы записали после настройки "Ключа доступа Spaces" ранее. Регион можно определить по URL-адресу конечной точки, который вы указали ранее. Это часть после первой. в URL-адресе, в моем случае это ams3. Конечная точка - это тот же URL-адрес конечной точки, за исключением уникального имени, которое вы выбрали.

Далее нам нужно настроить адаптер Flysystem для использования клиента S3:
PHP:
$config['fsAdapters']['data'] = function() use($s3)
{
   return new \League\Flysystem\AwsS3v3\AwsS3Adapter($s3(), 'xftest', 'data');
};

Наконец, нам нужно убедиться, что перед URL-адресами аватара и миниатюр вложений указан правильный URL-адрес. Для этого снова требуется URL-адрес конечной точки, который вы указали ранее:
PHP:
$config['externalDataUrl'] = function($externalPath, $canonical)
{
   return 'https://xftest.ams3.digitaloceanspaces.com/data/' . $externalPath;
};

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

Сначала нам нужно проверить, работает ли настройка. Просто перейдите и загрузите новый аватар. Теперь аватар будет храниться и обслуживаться удаленно!

Если вы сейчас проверите свою учетную запись DigitalOcean Spaces, вы увидите, что были созданы новые папки с вашим новым аватаром:
[aprodam.ru] Using DigitalOcean Spaces or Amazon S3


Успех! 🌟 Но мы только на полпути к этому!

Теперь нам нужно добавить поддержку каталога internal_data. Как правило, это вложения и любой другой материал, который должен быть "приватным". Вернемся к config.php и добавляемый код очень похож:
PHP:
$config['fsAdapters']['internal-data'] = function() use($s3)
{
   return new \League\Flysystem\AwsS3v3\AwsS3Adapter($s3(), 'xftest', 'internal_data');
};

Теперь попробуйте загрузить вложение к сообщению, и, как и раньше, вы увидите дополнительные файлы и папки в вашем файловом браузере Spaces. 🎉

Настройка Amazon S3
  1. Перейдите на страницу консоли управления AWS и зарегистрируйтесь или войдите в систему.
  2. В разделе "Сервисы AWS" введите "S3", чтобы перейти к "Консоли S3".
  3. Нажмите "Создать корзину".
  4. Выберите имя корзины (я выбрал xf test).
  5. Выберите регион (я выбрал EU London).
  6. Принимайте любые дополнительные параметры по умолчанию, пока корзина не будет создана.
  7. Теперь вам нужно перейти в консоль "IAM".
  8. Нажмите "Добавить пользователя".
  9. Выберите имя пользователя (да, я снова использовал xf test 😉).
  10. Установите тип доступа "Программный".
  11. Чтобы задать разрешения, перейдите на вкладку "Напрямую подключать существующие политики", а затем нажмите кнопку "Создать политику".
  12. Я являюсь пользователем, и различные политики и разрешения могут быть довольно сложными. Мы можем немного упростить задачу, хотя у вас могут быть другие требования. На этой странице есть вкладка под названием "JSON". Вставьте туда следующее, заменив ВАШЕ имя корзины на то, которое вы выбрали ранее:
JSON:
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:GetObject",
                "s3:GetObjectAcl",
                "s3:putObject",
                "s3:putObjectAcl",
                "s3:ReplicateObject",
                "s3:DeleteObject"
            ],
            "Resource": [
                "arn:aws:s3:::YOUR-BUCKET-NAME",
                "arn:aws:s3:::YOUR-BUCKET-NAME/*"
            ]
        }
    ]
}

  1. Нажмите "Просмотреть политику", дайте ей название и сохраните.
  2. Вернитесь на предыдущую страницу "Добавить пользователя", нажмите кнопку "Обновить" и найдите политику, которую вы только что создали.
  3. Нажмите "Далее", а затем "Создать пользователя".
Это даст вам ключ и секрет. Запишите их.

Настройка XF для использования Amazon S3

Теперь нам нужно настроить XF для использования Amazon S3 в качестве хранилища файлов. Мы начнем с того, что обычно помещается в каталог данных в первую очередь. Обычно это включает миниатюры вложений и аватары.

Откройте свой файл src/config.php.

Мы сделаем это с помощью замыкания, чтобы мы могли повторно использовать один и тот же код, и нам нужно будет ввести его только один раз:
PHP:
$s3 = function()
{
   return new \Aws\S3\S3Client([
      'credentials' => [
         'key' => 'ABC',
         'secret' => '123'
      ],
      'region' => 'eu-west-2',
      'version' => 'latest',
      'endpoint' => 'https://s3.eu-west-2.amazonaws.com'
   ]);
};

Обратите внимание, что ключ и секрет - это то, что вы указали ранее при настройке пользователя IAM. Регион можно определить по URL-адресу конечной точки S3.

Далее нам нужно настроить фактический адаптер Flysystem для использования клиента S3:
PHP:
$config['fsAdapters']['data'] = function() use($s3)
{
   return new \League\Flysystem\AwsS3v3\AwsS3Adapter($s3(), 'xftest', 'data');
};

Наконец, нам нужно убедиться, что перед URL-адресами аватара и миниатюр вложений указан правильный URL-адрес:
PHP:
$config['externalDataUrl'] = function($externalPath, $canonical)
{
   return 'https://xftest.s3.eu-west-2.amazonaws.com/data/' . $externalPath;
};

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

Сначала нам нужно проверить, работает ли конфигурация. Просто перейдите и загрузите новый аватар. Теперь аватар будет храниться и обслуживаться удаленно!

Если вы сейчас проверите свой браузер файлов bucket, вы увидите, что были созданы новые папки, содержащие ваш новый аватар:
[aprodam.ru] Using DigitalOcean Spaces or Amazon S3


Успех! 🌟 Но мы только на полпути к этому!

Теперь нам нужно добавить поддержку каталога internal_data. Как правило, это вложения и любой другой материал, который должен быть "приватным". Вернемся к config.php и добавляемый код очень похож:
PHP:
$config['fsAdapters']['internal-data'] = function() use($s3)
{
   return new \League\Flysystem\AwsS3v3\AwsS3Adapter($s3(), 'xftest', 'internal_data');
};

Теперь попробуйте загрузить вложение к сообщению, и, как и раньше, вы увидите дополнительные файлы и папки в вашем браузере файлов bucket. 🎉
Автор
noname
Скачиваний
0
Просмотры
25
Тип расширения
zip
Размер файла
712.4 КБ
Хэш
09de6ee809c0e15f182cd859f6bf45a9
Первый выпуск
Обновление

Рейтинги

0.00 звёзд Оценок: 0

Ещё ресурсы от noname

Последние обновления

  1. 2.4.1

    Из-за проблемы мы выпускаем новую версию дополнения для поддержки клиентов, использующих XenForo...
XenForo Night Mode Plugin

Модификации XenForo Night Mode Plugin

Плагин ночного режима, подготовленный для версий xenforo 2.2.x
[HeBeLe] Xenforo Message profile

Модификации [HeBeLe] Xenforo Message profile

позволяет настраивать профили сообщений
Назад
Верх Низ