Alist – Tạo trang index, download hỗ trợ nhiều dịch vụ storage
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.
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 romhub.io để 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
XEM THÊM: Cài đặt AList bằng Render + PlanetScale + Cloudflare Workers miễn phí
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ư OneDrive, Dropbox, 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 và 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 và 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.
- 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
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://romhub.io";
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