Surzhikov
@Surzhikov
Разработчик

WebDAV Ya.Disk и Flysystem: почему директории создаются а файлы не копируются?

Использую Flysystem в Laravel.
Задача - скопировать файл с локального хранилища на Я.Диск, через WebDAV.
Проблема: при попытке переноса файла - на яндекс диске создаются нужные директории, но сами файлы не копируются..

use Sabre\DAV\Client as WebDAVClient;
use League\Flysystem\Filesystem;
use League\Flysystem\Adapter\Local as LocalAdapter;
use League\Flysystem\WebDAV\WebDAVAdapter as WebDAVAdapter;
use League\Flysystem\MountManager;

....

$manager = new MountManager();
$local = new Filesystem(new LocalAdapter(storage_path()));
$manager->mountFilesystem('local', $local);

$webdav_adapter = new WebDAVAdapter(
	new WebDAVClient([
		'baseUri'    => 'https://webdav.yandex.ru',
		'userName'   => env('YANDEX_DISK_LOGIN'),
		'password'   => env('YANDEX_DISK_PASSWORD'),
	])
, '/');
$webdav = new Filesystem($webdav_adapter);
$manager->mountFilesystem('webdav', $webdav);

....

$local_path = 'local://' . 'app/public/dicoms/1.dcm';
$cloud_path = 'webdav://' . 'archive/12345/dicoms/1.dcm';
$res = $manager->copy( $local_path, $cloud_path );

По результатам выполнения, на Яндекс.Диске создается пустая папка "archive/12345/dicoms/"
  • Вопрос задан
  • 1200 просмотров
Пригласить эксперта
Ответы на вопрос 3
@AaAAxzz
Есть нормальный адаптер для Flysystem (вот только он работает через rest-api ... но зато для flysystem)
https://github.com/jack-theripper/yandex-disk-flysystem
Ответ написан
Комментировать
Ogoun
@Ogoun
Programmer
Лучше не использовать ЯДиск, официальная документация не соответствует реальному API, разрабы меняют API без обратной совместимости и предупреждения. Общение с техподдержкой ни к чему не приводит.

Тут можно посмотреть пример попытки общения с поддержкой по похожему вопросу.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы