[WebDAV] Медиа источник для облачных хранилищ
Предлагаю вашему вниманию компонент для связи с облачными хранилищами по протоколу WebDAV.
Поддерживает работу с Yandex.Disk (пример в конце).
В способах применения вас ограничивает фантазия и пропускная способность канала — бэкапы, хранение своего цифрового добра, может быть раздача файлов из хранилища — все на ваш вкус.
Драйвер умеет:
Некоторые особенности реализации.
Для компонента написана миниатюрная библиотека для работы по протоколу WebDAV.
Загрузка файлов на удаленный сервер выполняется опосредованного через сайт, соответственно, встречаются ограничения установленные на сайте по максимальному размеру принимаемых файлов.
Возможно включить отображение миниатюр для изображений. Но запрос на получение файла будет производиться каждый раз при запросе на миниатюру — для каталогов с фотками это создаст трафик, и может быть, совсем ненужный трафик.
Не все облака могут дать прямую ссылку на доступ к скачиванию файлов, потому для получения содержания файла можно использовать посредник. При обращении через посредник нужно добавить политику доступа для соответствующей группы пользователей.
Рассмотрим пример подключения к облаку Yandex Disk.
Проходим путь созидания нового источника:
1. Медиа -> Источники файлов -> Создать новый источник
2. Задаем название в духе «Yandex Disk», тип WebDAV. Сохраняем.
3. Правой кнопкой в списке по новоиспеченному источнику -> Редактировать
4. Прописываем параметры:
server: https: //webdav.yandex.ru (без пробелов)
authMethod: Basic
proxy: true
verifySSL: false (задел на будущее)
login, password: данные учетной записи.
Сохраняем, готово. Для доступа извне пропишите доступ пользователей к политике load.
Ежели вам потребно обращаться не к корневому каталогу хранилища, укажите нужный дочерний каталог в параметре basePath. Путь к файлам в обработчиках будет отсчитываться от этого basePath.
Поддерживает работу с Yandex.Disk (пример в конце).
В способах применения вас ограничивает фантазия и пропускная способность канала — бэкапы, хранение своего цифрового добра, может быть раздача файлов из хранилища — все на ваш вкус.
Драйвер умеет:
- Перечислить содержимое каталога
- Загрузить файлы
- Создать файл
- Редактировать файл
- Удалить каталог/файл
- Переносить элементы в дереве перетягиванием
- Кэшировать содержимое каталога и мета-информацию о файле
- Получать ресурс опосредованно через сайт
Некоторые особенности реализации.
Для компонента написана миниатюрная библиотека для работы по протоколу WebDAV.
Загрузка файлов на удаленный сервер выполняется опосредованного через сайт, соответственно, встречаются ограничения установленные на сайте по максимальному размеру принимаемых файлов.
Возможно включить отображение миниатюр для изображений. Но запрос на получение файла будет производиться каждый раз при запросе на миниатюру — для каталогов с фотками это создаст трафик, и может быть, совсем ненужный трафик.
Не все облака могут дать прямую ссылку на доступ к скачиванию файлов, потому для получения содержания файла можно использовать посредник. При обращении через посредник нужно добавить политику доступа для соответствующей группы пользователей.
Рассмотрим пример подключения к облаку Yandex Disk.
Проходим путь созидания нового источника:
1. Медиа -> Источники файлов -> Создать новый источник
2. Задаем название в духе «Yandex Disk», тип WebDAV. Сохраняем.
3. Правой кнопкой в списке по новоиспеченному источнику -> Редактировать
4. Прописываем параметры:
server: https: //webdav.yandex.ru (без пробелов)
authMethod: Basic
proxy: true
verifySSL: false (задел на будущее)
login, password: данные учетной записи.
Сохраняем, готово. Для доступа извне пропишите доступ пользователей к политике load.
Ежели вам потребно обращаться не к корневому каталогу хранилища, укажите нужный дочерний каталог в параметре basePath. Путь к файлам в обработчиках будет отсчитываться от этого basePath.
Комментарии: 23
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Общая идея такая:
1. Получение объекта для медиа источника откуда будете копировать, инициализация
2. Получение объекта для медиа источника куда будете копировать, инициализация
3. Получение списка файлов для копирования
4. Перебор списка файлов с вызовом UploadObjectsToContainer медиа источника назначения
И если да, то способен ли phpthumbof получить правильные ссылки с него для превью?
Пользуюсь dropbox-2.1.2+MIGX+phpthumbof и случилась проблема с которой не способен справиться.
modxclub.ru/topics/dropbox-2.1.2migxphpthumbof-1637.html
URL создается из: `http://yoursite.ru/assets/components/webdav/index.php?ctx=web&action=proxy&source=SOURCEID&src=path/file.ext`
SOURCEID у меня = 2, т.к. Yandexdisk имеет этот идентификатор после Filesystem. Для ссылки достаточно было «assets/components/webdav/index.php?ctx=web&action=proxy&source=2&src=file.ext». Жаль, что только при скачивании файл с малоизвестным расширением переименовывается в index.php, файл file.zip переименовывается в index.zip, файл file.jpg открывается без переименовываний.
:(
К яндекс диску подключается нормально, но превьюшки и вообще доступ к файлам получается только через прокси,
файлы только картинки, но с разными расширениями.
как выводить их на страницах сайта например в галерею? С Filesystem все работает а с webdav получается битая ссылка даже при включенном прокси…
При мультисайтинге совсем засада как разделить по контекстам???
Настройки такие:
Как вылечит
Сколько не пытаюсь вывести разные размеры превьюшек, но плейсхолдеры [[+120x90]] разных размеров не геренируются!
Получается вывести только последний заданный размер превьюшки через плейсхолдер [[+x]], он имеет следующий вид:
Как вытащить нужный размер превьюшек? Или использовать оригинал и пережимать его на лету с phpThumbOn как в старом Gallery было реализовано?
P.S. Настраивался источник файлов по этой статье к Яндексу.
Как это можно исправить?
8kbit.ru/assets/components/webdav/index.php?action=proxy&source=2&ctx=mgr&src=files/personal/nes/videos/Zoids — Chuuou Tairiku no Tatakai (J) (V1.0) [T%2BEng1.0a abishur (12.10.2020)]-video.mp4
В режиме администратора все работает, а в режиме посетителя и зарегистрированного юзера не загружается видео.
В чем может быть проблема?