Laravel скачать с google drive (файловая система) или (скрыть ключ api по ссылке) - PullRequest
0 голосов
/ 14 февраля 2020

Первый способ скачать:

  1. https://www.googleapis.com/drive/v3/files/1YIH4zfM0P1xa-_mfZNGiIY8qZrIEt-rF/?key=API_KEY&alt=media

Поместить мой API-ключ в ссылку, которую он дает я могу загрузить файл прямо с моего диска Google. Но я не хочу давать свой API_KEY пользователям.

2.Я также могу получить доступ к своему диску другим способом: (using nao-pon/flysystem-google-drive )

Route::get('/download/{rest?}', function ($rest) {
    $metadata = Storage::cloud()->getMetadata($rest);
    $readStream = Storage::cloud()->getDriver()->readStream($rest);

    return response()->stream(function () use ($readStream) {
        fpassthru($readStream);
    }, 200, [
        'Content-Type' => $metadata['mimetype'],
        'Content-disposition' => 'attachment; filename="'.$metadata['name'].'"', // force download?
    ]);
})->where('rest','(.*)');

Таким образом, мне не нужно использовать api_key, но сервер должен загрузить весь файл, это поток, но он все еще использует ресурсы сервера.

На С другой стороны, https://www.googleapis.com/drive/v3/files/1YIH4zfM0P1xa-_mfZNGiIY8qZrIEt-rF/?key=API_KEY&alt=media нужны Content-Type и File, поскольку его нет на нем. И также я не знаю, как скрыть ключ api.

Так что вы предлагаете. Есть ли другие способ не отвечать () -> поток, чтобы не загружать весь файл потоком через сервер, а затем отправлять его пользователю? Несколько пользователей, загружающих файлы, будут использовать всю пропускную способность, поэтому скорость загрузки падает настолько быстро.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...