Top 10 cách upload queued google drive (siêu dễ)
Sinx.edu.vn giới thiệu 10 cách chuyển đổi video bằng VLC Media Player giúp bạn đọc dễ dàng upload file tài liệu lên google drive.
Hướng dẫn upload queued google drive
1. Tạo Adapter và Service Provider của Google Drive
- Tạo 2 file GoogleDriveAdapter.php và GoogleDriveServiceProvider.php trong thư mục app/Providers:
GoogleDriveAdaper.php:
- Khai báo
GoogleDriveServiceProvider
vàoproviders
trongconfig/app.php
: - Vì ở đây ta coi Google Drive như là 1 disk nên ta khai báo
google
disk vào trongconfig/filesystems.php:
2. Lấy Google Drive API Key
a. Client ID & Secret\
- Truy cập vào Google Console và tạo 1 App: https://console.developers.google.com
- Ở đây mình đã tạo xong app google-drive-demo, vào Library tìm Google Drive API và enable:
- Sau đó, vào Credentials, tạo OAuth client ID:
b. Refresh Token
- Truy cập vào đường dẫn: https://developers.google.com/oauthplayground, ở góc bên phải phần cài đặt ta dán client ID và client secret:
- Sau đó, ở bên trái, tìm và chọn Google Drive API V3, chọn dòng đầu tiên:
- Tiếp tục ta làm theo các bước như hình bên dưới:
Cuối cùng ta lấy được Refresh token.
c. Lấy ID thư mục lưu trữ (Root)
- Truy cập vào Google Drive của mình và tạo một thư mục, ở đây mình sẽ tạo thư mục và lấy tên là Demo, đây là thư mục mà chúng ta sẽ tương tác, ID chính là phần cuối trong URL như hình:
- Sau khi lấy được tất cả các thông tin trên, chúng ta paste vào file .env :
- Xong, bây giờ chúng ta có thể truy cập Google Drive như một disk của Storage rồi.
3. Tạo file
- Đầu tiên chúng ta tạo file
demo.blade.php
trongresources/views
để Upload File - Tạo
DemoController.php
:php artisan make:controller DemoController
- File
web.php
Bây giờ chúng ta thử Upload 1 file lên thử xem. Ổn, file đã được upload lên Google Drive, tuy nhiên ta có thể thấy rằng thời gian chờ đợi upload khoảng gần 3s cho 1 file ~2Mb. Do đó, việc sử dụng Queue Job ở đây để thực hiện việc upload file là một cách để giải quyết vấn đề trên.
4. Tạo Queue Job
- Để chạy queue job trong Laravel đã hỗ trợ kha khá driver, nhưng ở đây để đơn giản mình sẽ sử dụng database để lưu lại Job:
- Tạo table jobs:
php artisan queue:table
php artisan migrate
- Ở file
.env
chúng ta sửaQUEUE_CONNECTION=database
- Tạo Job:
php artisan make:job PutFile
, một filePutFile.php
được tạo ở trongapp/Jobs/
- Sửa lại file
DemoController.php
Xong! Bây giờ chúng ta mở Terminal và chạy php artisan queue:work
. Upload lại thử file và quan sát Job đã được đẩy vào trong hàng đợi và bạn sẽ thấy web được load nhanh hơn.