baks-dev/files-cdn

Модуль CDN файловых ресурсов

Installs: 79

Dependents: 1

Suggesters: 0

Security: 0

Stars: 0

Watchers: 1

Forks: 0

Open Issues: 0

Type:symfony-bundle

v7.1.10 2024-12-15 20:57 UTC

README

Version php 8.3+

Модуль CDN файловых ресурсов

Установка

Рекомендуется установить на отдельный сервер с отдельным доменом!

$ composer require baks-dev/files-cdn

Настройки

Добавить директорию и установить права для загрузки файлов:

$ sudo mkdir <path_to_project>/public/upload
$ chown -R unit:unit <path_to_project>/public/upload

Генерируем дайджест пароля:

$ php bin/console security:hash-password

В файле конфигурации <path_to_cdn_project>/config/packages/security.php указываем настройку авторизации, указав результат хеширования пароля

  • <user> - пользователь
  • <hash-password-result> - результат хеширования пароля
<?php

namespace Symfony\Component\DependencyInjection\Loader\Configurator;

use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface;
use Symfony\Config\SecurityConfig;

return static function(SecurityConfig $config) {
	
	$config->enableAuthenticatorManager(true);

	$config->firewall('dev')
		->pattern('^/(_(profiler|wdt)|css|images|js)/')
		->security(false)
	;

	$config->passwordHasher(PasswordAuthenticatedUserInterface::class)->algorithm('bcrypt');

	$config->provider('in_memory_users')
		->memory()
		->user('<user>')
		->password('<hash-password-result>')
		->roles(['ROLE_CDN'])
	;
	
	$config->firewall('main')
		->pattern('^/cdn/upload')
		->provider('in_memory_users')
		->httpBasic()
	;
};

В основном проекте в файле environment <path_to_cdn_project>/.env указываем хост CDN и пароль для авторизации доступа

  • <user> - пользователь
  • <you-plain-password> - тектсовое представление пароля
###> CDN ###
CDN_HOST=cdn.example.host
CDN_USER=<user>
CDN_PASS=<you-plain-password>

Лицензия License

The MIT License (MIT). Обратитесь к Файлу лицензии за дополнительной информацией.