AList giúp chúng ta tạo 1 trang index, download hỗ trợ rất nhiều dịch vụ storage, khá tương tự Google Drive Index, nhưng các tùy biến, phân quyền mạnh mẽ hơn, một trong các tính năng mà mình rất ấn tượng là dùng Cloudflare Workers để làm proxy khi download, nhờ thế, kể cả có rất nhiều người cùng download, nó vẫn có thể đáp ứng được, giải pháp đơn giản mà cực kì hiệu quả.

Chưa kể, Alist còn có rất nhiều tính năng khác, thậm chí mình cũng không có nhu cầu dùng tới.

Đây là 1 sản phẩm tình cờ mình xem trên facebook, thấy 1 thành viên trong Nhóm Hỗ Trợ VPS Hosting giới thiệu mới biết, chứ tự search theo nhu cầu bằng các từ khóa kiểu google index hay gì chắc không ra được 😀

Cá nhân thì mình chỉ cần tạo 1 trang index các file từ Google Drive, bao gồm 2 thư mục, public ai cũng có thể download, view …. còn private thì cần tài khoản

Vấn đề này thì Alist làm rất tốt, dùng thử ít ngày mình thấy rất ổn, nên giới thiệu cho bà kon nào có cùng nhu cầu 😀

Trong trường hợp bạn đọc tới đây vẫn chưa hiểu Alist là gì thì có thể vào drive.romhub.me để xem thử

Các thư mục, file bạn thấy được load ra từ tài khoản Google Drive của mình

Cài đặt Alist

Cài đặt với One-click Script

curl -fsSL "https://alist.nn.ci/v3.sh" | bash -s install

Nếu dùng Ubuntu Oracle thì tắt firewall đi

sudo apt remove iptables-persistent -y && sudo ufw disable && sudo iptables -F

Sau khi cài đặt xong, truy cập vào theo đường dẫn

http://YOUR_IP:5244/

Tài khoản quản trị thì sau khi cài đặt xong sẽ thấy dạng như sau:

admin user's info:
- username: admin
- password: Yw8doHRU

Lúc này bạn có thể login vào admin, đổi lại user, password

http://YOUR_IP:5244/@manage/

Do Alist liên thông với khá nhiều tài khoản, để tăng 1 chút bảo mật, có thể bật 2FA lên.

Cá nhân thì mình dùng Google Drive nên ở bài này chỉ hướng dẫn cấu hình trên Google Drive, các storage khác như OneDriveDropbox, Terabox … thì tham khảo cách setup từ trang hướng dẫn của Alist, họ viết chi tiết lắm.

Add Storages Google Drive

Làm theo hướng dẫn của tác giả thì an toàn nhất, mỗi cái nhìn nhức hết cả đầu, viết lại chắc dài như tờ sớ, dùng cách có sẵn cho nhanh. (Nhưng mình vẫn recommend ae làm theo hướng dẫn của tác giả để có API riêng, không bị giới hạn gây ra lỗi).

Bước 1: Truy cập vào GDIndex Code Builder của HashHackers

Login vào tài khoản Google của bạn, cấp quyền để gdi.js.org sẽ có thể xem, chỉnh sửa, tạo và xóa tất cả tệp của bạn trên Google Drive

Bước 2: Đặt bừa tên Site Name bất kì ấn Next để sang bước 3.

Bước 3: lấy 3 giá trị từ đoạn code được tạo ra là client_id, client_secret refresh_token

Điền vào bên trong AList Manage Storages

  • Mount Path: đặt 1 đường dẫn tùy ý
  • WebDAV policy: dùng native proxy như mặc định
  • Root folder id: mặc định điền sẵn root là hiện tất cả file, thư mục

Sau đó ấn Add để tạo Storages Google Drive này

Lặp lại bước này nhiều lần để add nhiều tài khoản khác hoặc dùng lại client_id, client_secret refresh_token để tạo các thư mục riêng biệt tùy nhu cầu sử dụng.

Để xem ID của 1 thư mục cụ thể bên trong Google Drive thì bạn ấn vào thư mục đó, ID là phần link phía sau folders

Điền giá trị này vào Root folder id bên trong AList Manage Storages

Như trên thì mình tạo thêm 1 thư mục là Public đi tới thư mục Google Drive.

Lúc này, mình đã add vào 2 thư mục, Private và Public

Trong đó Private là thư mục root ở tài khoản Google Drive

Public là 1 thư mục nhỏ nằm bên trong tài khoản Google Drive

Nhu cầu sử dụng thông thường, thư mục Public sẽ để mọi người có thể xem và download các file bên trong, thư mục Private chỉ ai có tài khoản mới có thể thấy, lúc này bạn có thể phân quyền các tài khoản để xử lý chuyện này.

Đi tới Users, sẽ thấy tài khoản guest, ấn vào Edit
  • Base path: chọn đường dẫn tới thư mục Public
  • Access without password: bật tùy chọn này
  • Disabled: tắt tùy chọn này

Sau đó ấn Save

Admin
Guest

Lúc này, nếu truy cập vào Alist, mặc định bạn sẽ thấy các thư mục và file được share 😀 khi log vào tài khoản quản trị, sẽ thấy thêm thư mục Private.

Tính tùy biến của Alist khá mạnh, bạn có thể add thêm các nhiều tài khoản Google Drive khác vào thư mục Public này, để tài khoản Guest có thêm các thư mục mới, ai vào trang Alist đều có thể thấy được.

Khá là hài lòng với sự tùy biến mạnh mẽ này 😀 cá nhân mình cũng chỉ cần tới thế

Tốc độ download

Thử nghiệm tới phần tốc độ download thì đúng là sock văn hóa với khả năng code và tư duy của mí anh Trung Quốc, quá khủng khiếp

  • WebDAV policy: native proxy – dùng trực tiếp VPS làm proxy để download, dù con VPS này ở US West (San Jose) nhưng tốc độ download cũng được ~ 10MB/s
  • WebDAV policy: use proxy URL – Chế độ này thực sự gây socks, vì tác giả tích viết sẵn tính năng dùng Cloudflare Workers để làm proxy

Cấu hình rất đơn giản, bạn chỉ cần chép nội dung file alist-proxy.js vào Cloudflare Workers, sửa lại 2 dòng bên dưới

var ADDRESS = "YOUR_ADDRESS";
var TOKEN = "YOUR_TOKEN";

Trong đó:

  • YOUR_ADDRESS là domain chạy Alist
  • YOUR_TOKEN thì lấy ở Settings -> Other -> Token

Như của mình thì sửa 2 dòng này thành như thế này:

var ADDRESS = "https://drive.romhub.me";
var TOKEN = "alist-1290f12a-e9cd-484c-8e47-DZ9iz45GT5VAQzzyQGtnT0R9VfB2";

Bên trong cấu hình storages thêm vào đường dẫn proxy vừa tạo

Phần cấu hình Cloudflare Workers làm proxy chỉ thế thôi

Thử download từ Cloudflare Workers proxy thì hết hồn, tốc độ ~ 30 MB/s luôn

Thực tế mình download hết cỡ từ Google Drive cũng chỉ 15-20Mb/s là kịch, không hiểu cơ sở hạ tầng của Cloudflare thần thánh cỡ nào luôn :]]

Viết tới đây cũng cảm giác hơi lú người, nếu Cloudflare cho phép kiểu này, ai có nhu cầu làm thành 1 trang download, bỏ ra $5 / 1 tháng cho Workers quá là xứng đáng

Dùng cá nhân thì 100.000 lượt requests mỗi ngày cũng đủ dùng 😛

Alist còn khá nhiều tính năng khác, nhưng tạm thì mình chưa ngó tới, vì cũng nhu cầu cũng chỉ dùng như trong bài viết thôi 😀

Quota exceeded

Thi thoảng mình gặp thông báo quota exceeded for quota metric ‘queries’ and limit ‘queries per minute’, google thì thấy lỗi này là do dùng quá nhiều trong ngày hoặc 1 thời gian nhất định.

Thử tạo 1 API trên tài khoản Google cá nhân để xem thì thấy giới hạn 20.000 lượt trong 100s lận, khả năng do GDIndex Code Builder từ HashHackers nhiều người dùng quá thật.

Bạn nào dùng mà thấy văng lỗi Quota exceeded thì tạo riêng Google Drive API dùng cho đỡ phiền

Upload File lên Alist qua WebDav

Nếu bạn chỉ dùng 1 tài khoản Google Drive trên Alist, thì vấn đề quản lý file, upload file khá đơn giản, vào thẳng Google Drive upload file lên là xong, Alist lúc này chỉ đơn giản là 1 trang index

Nếu bạn add vào 5-10 tài khoản, ở 3-5 dịch vụ khác nhau, nếu upload file qua dịch vụ storages thì sợ nhớ không nổi tài khoản nào ở thu mục nào luôn ấy

Sau khi đọc thêm file help của họ, thì có thể quản lý upload, chỉnh sửa file thông qua WebDav

Trên Windows có thể dùng 1 app có hỗ trợ WebDav như RaiDrive

Việc cấu hình cũng rất đơn giản, điền domain với user + pass của bạn vào, thêm đường dẫn tới thư mục /dav là xong.

Lúc này trên Windows của bạn đã có ổ đĩa WebDAV với đầy đủ cấu trúc thư mục y chang như trên web

Bạn có thể copy, xóa hay edit file trực tiếp tất cả các thư mục từ rất nhiều storages qua ổ đĩa WebDAV

Thử nghiệm sơ bộ thì trừ các storages dạng Object Storage, chép file qua WebDAV hơi chậm, còn các storages khác như Google Drive thì bình thường.

Upload File lên Alist qua trình duyệt

Khi bạn vào trang chủ của Alist, sẽ thấy 1 icon menu 3 dấu chấm nhỏ ở bên dưới góc phải màn hình, ấn vào sẽ thấy các icon như Upload hay tạo xóa thư mục, file …. ấn vào icon Upload để tới phần Upload

Có thể kéo thả trực tiếp các file muốn upload lên

Lỗi?

Dù Alist được tác giả viết như thần, nhưng nó cũng đi kèm rất nhiều lỗi khá là củ chuối 😀 kiểu bản cũ bạn dùng không thấy lỗi, update lên bản mới hơn lại …. văng lỗi 😀

Cụ thể là bản v3.25.1 chạy Cloudflare Workers proxy bị lỗi, dùng bản cũ hơn 1 chút là v3.24.0 thì chạy bình thường

Nếu thấy lỗi gì thì cứ mạnh dạn report, tác giả sẽ cập nhập, sửa lỗi sớm 😛

Phiên bản mới nhất v3.26.0 vừa ra mắt vào 21/08/2023 đang chạy ổn định, không có lỗi gì

Kết luận

Alist cực mạnh, nếu bạn lưu trữ dữ liệu từ 5-10 tài khoản hay 5-10 dịch vụ, thì có thể dùng Alist để tạo 1 trang để quản lý, thêm sửa xóa gì đó trực tiếp qua Alist

Alist hỗ trợ cả FPT, S3 …. nên có thể áp dụng rất nhiều thứ vào thực tiễn

Tạm thì rất hài lòng với các tính năng và hiệu năng Alist mang lại, xuất sắc.

Chia sẻ: bibica