@Bulanov-Key

Как скачать файл или архив файлов с CLOUD.MAIL через PHP CURL, зная публичную ссылку, например https://cloud.mail.ru/public/N74q/PqfRqxhbB?

Непонятно, как скачивать публичные файлы с CLOUD.MAIL.ru через PHP CURL
  • Вопрос задан
  • 11294 просмотра
Пригласить эксперта
Ответы на вопрос 2
@reducenta
фрилансер
Я делал так.
Вроде бы все работало, за исключением того, что нельзя записать файл под тем же именем, что и по ссылке. Наверное как то можно и это имя узнать, но это мне было не нужно - поэтому не заморачивался.
Плюс к этому, я так понимаю, этот метод работает, если по публичной ссылке лежит только один файл.

$login = 'login@mail.ru'; //Любой логин на mail.ru
$file = 'https://cloud.mail.ru/public/4iJK/AAABBB'; //Публичная ссылка
$out = __DIR__ . 'file.xlsx'; //Куда записывать файл

$url = 'https://cloud.mail.ru/api/v2/dispatcher?api=2&email=' . $login . '&_=' . time();

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

$answer = json_decode(curl_exec($ch), true);
curl_close($ch);

$weblink_prefix = $answer['body']['weblink_get'][0]['url'];
$weblink_suffix = str_replace('https://cloud.mail.ru/public', '', $file);

file_put_contents($out, file_get_contents($weblink_prefix . $weblink_suffix));
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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