Xây dựng Onedrive Index bằng onedrive cá nhân

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.

fork onedrive index

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.

change site config

  • 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:

register-an-application

Sao chép  Application (client) ID là clientId trong api.config.js

get-client-id

Tạo client secret cho obfuscatedClientSecret trong api.config.js

create-client-secret

Sao chép giá trị client secret

copy-your-client-secret

Truy cập API permissions và thêm thông tin bên dưới

  • User.Read
  • Files.Read.All
  • offline_access

add-required-permissions

Truy cập tại đây để tạo obfuscatedClientSecret trong api.config.js

Obfuscated Client Secret

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

deployed onedrive index vercel

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 ).

config upstash

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.

onedrive index vercel

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).

Onedrive index 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

Onedrive index get tokens

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_tokenRefresh_token. Nhấp vào Get tokens để tiếp tục.

step3-get-tokens

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.

0 0 đánh giá
Article Rating
Theo dõi
Thông báo của
guest
0 Comments
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất
Phản hồi nội tuyến
Xem tất cả bình luận
Trang web này sử dụng cookie để mang đến cho bạn trải nghiệm duyệt web tốt hơn. Bằng cách duyệt trang web này, bạn đồng ý với việc chúng tôi sử dụng cookie.
0
Rất thích suy nghĩ của bạn, hãy bình luận.x