Onedrive index sử dụng OneDrive của bạn làm máy chủ lưu trữ và hiển thị các tệp tin, hình ảnh, video, bài hát và tài liệu được lưu trữ bên trong OneDrive của bạn, cho phép mọi người xem trước và tải xuống. Onedrive index được viết bằng Next.js, vì vậy bạn có thể triển khai được trên các nền tảng máy chủ hoàn toàn miễn phí như Vercel, Netlify…
Các bước xây dựng Onedrive index
Sao chép (Fork) code spencerwooo/onedrive-vercel-index về github của mình.
Thay đổi cấu hình trong config/site.config.js
- userPrincipleName: thành địa chỉ email tài khoản Microsoft của bạn
- baseDirectory: thành một thư mục nào đó mà bạn muốn chia sẻ cho mọi người trong thư mục gốc OneDrive.
- protectedRoutes: khai báo thư mục bạn muốn bảo vệ bằng mật khẩu. Tạo một tệp văn bản có tên .password và mở tệp .password này bằng trình soạn thảo văn bản, như VS Code hoặc Notepad và tạo mật khẩu bên trong (ở định dạng văn bản). Cuối cùng tải tệp này vào thư mục mà bạn muốn bảo vệ bằng mật khẩu trên onedrive
// khai báo thư mục muốn bảo vệ bằng mật khẩu "protectedRoutes": [ "/Private folder/u-need-a-password", ], // Khai báo thêm thư mục muốn bảo vệ bằng mật khẩu "protectedRoutes": [ "/Private folder/u-need-a-password", "/another/route/for/me/to/protect", ], // Vô hiệu mật khẩu "protectedRoutes": [],
Cấu hình API (tuỳ chọn)
Nếu bạn sử dụng onedrive cá nhân (không phải onedrive doanh nghiệp, giáo dục, microsoft 365 E5) thì bạn bỏ qua bước cấu hình API trong config/api.config.js.
Truy cập Microsoft Azure App registrations và tạo New registration như hình:
Sao chép Application (client) ID là clientId trong api.config.js
Tạo client secret cho obfuscatedClientSecret trong api.config.js
Sao chép giá trị client secret
Truy cập API permissions và thêm thông tin bên dưới
- User.Read
- Files.Read.All
- offline_access
Truy cập tại đây để tạo obfuscatedClientSecret trong api.config.js
Triển khai (Deployed) onedrive index trên vercel.
Đăng nhập Vercel bằng tài khoản Github, chọn tạo New Project và chọn import repo Onedrive index từ github và thay đổi lệnh sau:
- Build command to pnpm build
- Install command to pnpm install
Tích hợp Upstash Databases
Truy cập Upstash – Vercel và làm theo hướng dẫn để tích hợp Upstash Databases ( sử dụng lưu trữ các token cần thiết vào cơ sở dữ liệu Redis ).
Sau khi setup Upstash xong, bạn sẽ truy cập Deployment và thực hiện Redeploy. Vậy là xong quá trình tự tạo một trang onedrive index.
Cấu hình chứng thực Onedrive index
Khi truy cập onedrive index (https://xxx.vercel.app) lần đầu tiên, bạn sẽ được chuyển sang trang chứng thực (OAuth process).
Nhấn nút Proceed to OAuth nó sẽ chuyển sang bước tiếp theo.
Dựa vào cấu hình API, code sẽ tự động tạo ra một link chứng thực. Nhấp vào link, một tab mới mở ra và yêu cầu login tài khoản microsoft cùng với tài khoản được định nghĩa trong userPrincipalName trong config/site.config.js
Bạn sẽ được chuyển đến http://localhost, sao chép toàn bộ URL trên thanh địa chỉ của bạn vào phần nhập liệu bên dưới. Onedrive index sẽ trích xuất mã từ URL và sử dụng mã đó để lấy một cặp access_token và Refresh_token. Nhấp vào Get tokens để tiếp tục.
Vậy là xong, màn hình thông báo thành công với mã tokens hợp lệ để bạn lưu trữ trong cơ sở dữ liệu Redis của mình. Nhấp vào Stose tokens là xong.