Я занимаюсь разработкой веб-приложения с использованием PHP, Dropbox API и Box API.
У меня уже есть токен доступа для использования этих API.
Мои потребности:
1. Загрузите файл прямо с сервера Dropbox / Box
2. Не проходя аутентификацию пользователя в браузере
3. Без необходимости делиться файлом на DropBox / Box
На самом деле, у меня на сервере есть скрипт PHP, который делает Curl для URL файла с токеном доступа, переданным через заголовок Authorization. Это работает, но на больших файлах мой скрипт потерпел неудачу из-за ограничения памяти (Curl хранит файл в памяти, пока пользователь загружает файл в своем браузере).
<?php
header("Content-Type: application/octet-stream; charset=UTF-8");
header('Content-Disposition: attachment;filename="' . $filename . '";filename*=UTF-8\'\'' . urlencode($filename));
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $downloadUrl);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Authorization: Bearer ' . $token));
curl_exec($ch);
curl_close($ch);
?>
По некоторым причинам конфиденциальности я не могу хранить временные файлы на своем веб-сервере.
По некоторым удобным причинам я не хочу скачивать файл с Ajax-запросом.
Я искал прямую ссылку для скачивания в Dropbox и Box API, но кажется, что ничего не доступно …
Какие решения я могу попробовать?
Мне нужно только добавить этот заголовок авторизации, но это сводит меня с ума …
Замечания:
Для Google Drive мы можем передать токен доступа непосредственно в URL-адрес загрузки файла, чтобы он отлично работал.
Для OneDrive Microsoft дает нам прямую ссылку для скачивания
Для справки, по крайней мере с Dropbox, вы можете передать токен доступа в параметре URL «access_token», а не в заголовке авторизации.
Кроме того, в ситуации, когда вам нужна прямая ссылка для скачивания, но вы не можете предоставить токен доступа, вы можете использовать URL-адрес, возвращаемый / media:
Других решений пока нет …