Клуб API Диска

Загрузка файлов на Яндекс Диск REST API

28 января, 19:26

Загрузка файлов на Яндекс Диск  REST API

$url = "https://cloud-api.yandex.net/v1/disk/resources/upload?path=beeline%5Chonda-civik.png&url=http%3A%2F%2Fcenterakpp.com%2Fwp-content%2Fuploads%2F2012%2F03%2Fhonda-civik.png&overwrite=true";

//https://cloud-api.yandex.net/v1/disk/resources?path=disk%3A%2Fbeeline"

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url); 
$header = array(
    'Accept: application/json',
    'Authorization: OAuth '. TOKEN ,

);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_POST, 1); 
$result = curl_exec($ch);
curl_close($ch);
echo $result;

Как организовать проверку если файл на сервере или допустим если уже есть перезаписать?*

1 комментарий
Подписаться на комментарии к посту
Можно действовать 2мя способами:
1. Если вероятность колизий низка, то можно пытаться загрузить файл с overwrite=false, и следить за статусом операции загрузки по ссылке которую вернёт POST /v1/disk/resources/upload. Если операция загрузки завершится ошибкой, то проверить нет ли по пути, куда происходила загрузка, какого-то файла.
2. Если вероятность колизий высока, а файлы в Диске перемещаются не часто (не чаще чем раз в несколько секунд), то можно сначала  проверять существование файла или папки по пути, куда сохраняется файл, с помощью GET /v1/disk/resources, и если этот запрос вернул 404, то запускать загрузку.