Медиа Менеджер
По умолчанию Медиа Менеджер работает с папкой storage/app/media. Вы можете изменить настройки, чтобы использовать Amazon S3 или Rackspace CDN.
Вы должны установить Драйвера (opens new window) перед тем, как начать использовать Amazon S3 или Rackspace CDN.
Не забудьте после изменения настроек Медиа Менеджера обновить его кэш!
# Настройка Amazon S3
Зарегистрируйтесь на Amazon AWS или войдите в свою учетную запись. Откройте панель управления S3 и создайте новую корзину.
Создайте папку media, которая будет корнем вашей Медиа Библиотеки (вы можете использовать любое название).
По умолчанию файлы в корзине не могут быть доступны напрямую. Чтобы сделать корзину отркытой для всех, вернитесь в их список и выберите ту, которую создали. Дальше нажмите на кнопку Properties справа. Отркойте вкладку Permissions. Нажмите на Edit bucket policy. Вставьте следующий код в попап окно (не забудьте заменить название корзины):
{
"Version": "2008-10-17",
"Id": "Policy1397632521960",
"Statement": [
{
"Sid": "Stmt1397633323327",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::BUCKETNAME/*"
}
]
}
Нажмите кнопку Save. Вы измените права на read-only на все папки и файлы в корзине. Также возможно настроить публичный доступ до определенной папки в корзине:
...
"Resource": "arn:aws:s3:::BUCKETNAME/media/*"
...
Вы также должны создать API пользователя, которого OctoberCMS будет использовать для управления файлами в корзине. В AWS консоли перейдите в раздел IAM. Нажмите на вкладку Users и создайте нового пользователя с любым именем. Обратите внимание на то, чтобы было отмечено "Generate an access key for each user". После того, как AWS создаст нового юзера, вы можете посмотреть его Access Key ID и Secret Access Key. Скопируйте эти ключи, они вам еще пригодятся.
Вернитесь к списку пользователей и нажмите на того, которого сейчас создали. В разделе Permissions нажмите на кнопку Attach Policy. Выберите AmazonS3FullAccess в списке и нажмите на кнопку Attach Policy.
Теперь вы имеете всю необходимую информацию для настройки OctoberCMS. Откройте файл config/filesystem.php и найдите раздел disks. Он уже содержит настройки s3, поэтому их нужно только заменить на Ваши:
Ключ | Значение |
---|---|
key | Access Key ID пользователя, которого вы создали. |
secret | Secret Access Key пользователя, которого вы создали. |
bucket | название корзины. |
region | код региона. |
Вы можете найти название региона корзины в консоле S3, на вкладке Properties, например, Oregon. Используйте таблицу ниже, чтобы найти код региона по его названию (вы также можете посмотреть AWS документацию (opens new window)):
Регион | Код |
---|---|
US Standard | us-east-1 |
US West (Oregon) | us-west-2 |
US West (N. California) | us-west-1 |
EU (Ireland) | eu-west-1 |
EU (Frankfurt) | eu-central-1 |
Asia Pacific (Singapore) | ap-southeast-1 |
Asia Pacific (Sydney) | ap-southeast-2 |
Asia Pacific (Tokyo) | ap-northeast-1 |
South America (Sao Paulo) | sa-east-1 |
Пример:
'disks' => [
// ...
's3' => [
'driver' => 's3',
'key' => 'XXXXXXXXXXXXXXXXXXXX',
'secret' => 'xxxXxXX+XxxxxXXxXxxxxxxXxxXXXXXXXxxxX9Xx',
'region' => 'us-west-2',
'bucket' => 'my-bucket'
],
// ...
]
Сохраните файл config/filesystem.php и откройте config/cms.php. Найдите раздел storage, media. Измените значения disk, folder и path:
Ключ | Значение |
---|---|
disk | s3. |
folder | назавние папки в корзине. |
path | URL корзины. |
Пример:
'storage' => [
// ...
'media' => [
'disk' => 's3',
'folder' => 'media',
'path' => 'https://s3-us-west-2.amazonaws.com/your-bucket-name/media'
]
]
Поздравляем! Теперь вы может использовать Amazon S3.
Вы также можете использовать Amazon CloudFront CDN для работы с вашей корзиной (см. CloudFront документация (opens new window)). После настройки CloudFront, не забудьте изменить значение path в разделе storage.
# Настройка Rackspace CDN
To use Rackspace CDN with OctoberCMS, you should create Rackspace CDN container, folder in the container and API user.
Войдите в консоль управления Rackspace и перейдите в раздел Storage / Files. Создайте новый контейнер с типом Public (Enabled CDN).
Создайте папку media, которая будет корнем вашей Медиа Библиотеки (вы можете использовать любое название).
Вы должны создать API пользователя, которого OctoberCMS будет использовать для управления файлами. Откройте страницу Account / User Management. Нажмите на кнопку Create user. Введите имя пользователя (например, october.cdn.api), пароль, секретный вопрос и ответ. В разделе Product Access выберите Custom, после Admin. Используйте роль No Access в разделе Account и Technical Contact в разделе Contact Information. После сохранения пользователя, вы увидете раздел Login Details с API Key, которые понадобятся для настройки OctoberCMS.
Теперь вы имеете всю необходимую информацию для настройки OctoberCMS. Откройте файл config/filesystem.php и найдите раздел disks. Он уже содержит настройки Rackspace, поэтому их нужно только заменить на Ваши:
Ключ | Значение |
---|---|
username | имя пользователя (например, october.cdn.api). |
key | API Key пользователя, который вы можете найти на странице Профиль. |
container | имя контейнера. |
region | код региона корзины. |
endpoint | не изменять. |
region | Вы можете найти название региона в списке контейнеров, в панели управления Rackspace. Это 3-ех буквенное значение, например, ORD для Chicago. |
Пример:
'disks' => [
...
'rackspace' => [
'driver' => 'rackspace',
'username' => 'october.api.cdn',
'key' => 'xx00000000xxxxxx0x0x0x000xx0x0x0',
'container' => 'my-bucket',
'endpoint' => 'https://identity.api.rackspacecloud.com/v2.0/',
'region' => 'ORD'
],
// ...
]
Сохраните файл config/filesystem.php и откройте config/cms.php. Найдите раздел storage, media. Измените значения disk, folder и path:
Ключ | Значение |
---|---|
disk | rackspace. |
folder | название папки в конейнере. |
path | URL до папки в контейнере. |
Пример:
'storage' => [
// ...
'media' => [
'disk' => 'rackspace',
'folder' => 'media',
'path' => 'https://xxxxxxxxx-xxxxxxxxx.r00.cf0.rackcdn.com/media'
]
]
Поздравляем! Теперь вы может использовать Rackspace CDN.
# Аудио и видео проигрыватели
По умолчанию система использует HTML5 audio и video теги для отображения медиафайлов:
<video src="video.mp4" controls></video>
или
<audio src="audio.mp3" controls></audio>
Вы можете использовать oc-audio-player.html и oc-video-player.html фрагменты, чтобы переопределить их отображение. Используйте переменную src внутри фрагментов, чтобы получить ссылку на файл. Пример:
<video src="{{ src }}" width="320" height="200" controls preload></video>
Вы также можете использовать Twig разметку, чтобы, например, подргужать нужное видео под нужное разрешение:
<video controls>
<source
src="{{ src }}"
media="only screen and (min-device-width: 568px)"></source>
<source
src="{{ src|replace({'.mp4': '.iphone.mp4'}) }}"
media="only screen and (max-device-width: 568px)"></source>
</video>
# Другие параметры конфигурации
Существуют некоторые дополнительные параметры Медиа Менеджера, которые Вы можете использовать. Все они находятся в файле config/cms.php, в разделе storage/media. Например:
'storage' => [
// ...
'media' => [
// ...
'ignore' => ['.svn', '.git', '.DS_Store']
]
],
Ключ | Значение |
---|---|
ignore | список файлов и папок, которые нужно проигнорировать. По умолчанию ['.svn', '.git', '.DS_Store']. |
ttl | "cache time-to-live", в минутах. По умолчанию - 10 минут. Кэш очищается автоматически, когда элементы библиотеки добавляются/обновляются/удаляются. |
imageExtensions | расширения файлов, соответствующих изображению. По умолчанию - ['gif', 'png', 'jpg', 'jpeg', 'bmp']. |
videoExtensions | расширения файлов, соответствующих видео. По умолчанию - ['mp4', 'avi', 'mov', 'mpg']. |
audioExtensions | расширения файлов, соответствующих аудио. По умолчанию - ['mp3', 'wav', 'wma', 'm4a']. |
# Исправление проблем
Наиболее популярная проблема использования удаленых сервисов - SSL. Убедитесь в том, что ваш сервер имеет свежие SSL сертификаты.