alist
🗂️A file list/WebDAV program that supports multiple storages, powered by Gin and Solidjs. / 一个支持多存储的文件列表/WebDAV程序,使用 Gin 和 Solidjs。
Top Related Projects
📂 Web File Browser
☁️ Nextcloud server, a safe home for all your data
🐦 A personal music streaming server that works.
Open Source Continuous File Synchronization
VS Code in the browser
"rsync for cloud storage" - Google Drive, S3, Dropbox, Backblaze B2, One Drive, Swift, Hubic, Wasabi, Google Cloud Storage, Azure Blob, Azure Files, Yandex Files
Quick Overview
AList is an open-source file list program that supports multiple storage providers. It allows users to manage and access files from various cloud storage services through a single, unified interface. AList is designed to be fast, lightweight, and easy to deploy.
Pros
- Supports a wide range of storage providers, including local storage, S3, Google Drive, OneDrive, and more
- Features a modern, responsive web interface for easy file management
- Offers WebDAV support for integration with other applications
- Provides a RESTful API for programmatic access and custom integrations
Cons
- May require some technical knowledge for initial setup and configuration
- Limited advanced features compared to some proprietary file management solutions
- Potential security concerns when handling sensitive data from multiple sources
- Relies on third-party storage providers, which may have their own limitations or issues
Getting Started
To get started with AList, follow these steps:
- Download the latest release from the GitHub releases page.
- Extract the downloaded file and run the executable:
./alist server
-
Access the web interface at
http://localhost:5244
and use the default credentials:- Username: admin
- Password: Check the console output for the randomly generated password
-
Configure your storage providers through the web interface or by editing the
config.json
file.
For more detailed instructions and configuration options, refer to the official documentation.
Competitor Comparisons
📂 Web File Browser
Pros of Filebrowser
- Simpler setup and configuration process
- Built-in user management system with multiple authentication methods
- More polished and user-friendly interface
Cons of Filebrowser
- Limited support for cloud storage services
- Fewer advanced features compared to AList
- Less frequent updates and smaller community
Code Comparison
AList (Go):
func (d *Driver) List(ctx context.Context, dir model.Obj, args model.ListArgs) ([]model.Obj, error) {
files, err := d.client.ListDir(dir.GetPath())
if err != nil {
return nil, err
}
return utils.SliceConvert(files, func(src *api.File) (model.Obj, error) {
return fileToObj(src), nil
})
}
Filebrowser (Go):
func (d *Dir) Listing(r *http.Request, user *users.User) ([]os.FileInfo, error) {
files, err := ioutil.ReadDir(d.Path)
if err != nil {
return nil, err
}
return d.filterFiles(files, user), nil
}
Both projects are written in Go and provide file listing functionality. AList's implementation is more focused on supporting various storage backends, while Filebrowser's approach is simpler and directly interacts with the local filesystem.
☁️ Nextcloud server, a safe home for all your data
Pros of Nextcloud
- More comprehensive collaboration features (file sharing, calendars, contacts)
- Larger ecosystem with many apps and integrations
- Self-hosted solution with full control over data and infrastructure
Cons of Nextcloud
- Higher resource requirements and more complex setup
- Potentially slower performance for large file operations
- Steeper learning curve for administration and customization
Code Comparison
Nextcloud (PHP):
<?php
namespace OCA\Files\Controller;
use OCP\AppFramework\Controller;
use OCP\IRequest;
class ViewController extends Controller {
public function __construct($appName, IRequest $request) {
parent::__construct($appName, $request);
}
}
AList (Go):
package controllers
import (
"github.com/gin-gonic/gin"
)
type FilesController struct{}
func (c *FilesController) List(ctx *gin.Context) {
// Implementation
}
The code snippets show different approaches to handling file-related operations. Nextcloud uses a PHP-based controller structure, while AList employs Go with the Gin framework for routing and handling requests. This reflects the different languages and architectures used by each project.
🐦 A personal music streaming server that works.
Pros of Koel
- Focused on music streaming and management, providing a tailored experience for audio content
- Offers a sleek, modern web interface with album art and playlist management
- Includes features like Last.fm integration and audio transcoding
Cons of Koel
- Limited to audio files, lacking support for other file types
- Requires more setup and configuration compared to AList's simpler installation process
- May have higher resource requirements due to audio processing features
Code Comparison
AList (Go):
func (driver *GoogleDrive) Link(args base.Args, account *model.Account) (*base.Link, error) {
file, err := driver.GetFile(args.Path)
if err != nil {
return nil, err
}
return &base.Link{URL: file.WebContentLink}, nil
}
Koel (PHP):
public function getPlayableState(array $songs): PlayableState
{
$state = new PlayableState();
foreach ($songs as $song) {
$state->addSong($song);
}
return $state;
}
While both projects handle file management, AList focuses on general file storage and sharing across multiple cloud services, whereas Koel specializes in music streaming and organization. AList's code example shows file linking functionality, while Koel's demonstrates playlist state management.
Open Source Continuous File Synchronization
Pros of Syncthing
- Decentralized and peer-to-peer file synchronization, offering better privacy and control
- Cross-platform support with clients for various operating systems and devices
- Open-source with a large community and active development
Cons of Syncthing
- Requires installation and setup on all devices, which can be more complex
- Limited web interface functionality compared to AList's feature-rich web UI
- Primarily focused on file synchronization, lacking some file management features
Code Comparison
Syncthing (Go):
func (m *Model) Index(folder string, fs fs.Filesystem, sub string) error {
m.fmut.RLock()
cfg := m.folderCfgs[folder]
m.fmut.RUnlock()
m.setState(folder, FolderScanning)
defer m.setState(folder, FolderIdle)
}
AList (Go):
func (d *Driver) List(ctx context.Context, dir model.Obj, args model.ListArgs) ([]model.Obj, error) {
files, err := d.client.Files.ListFolder(&dropbox.ListFolderInput{
Path: dir.GetPath(),
})
if err != nil {
return nil, err
}
}
Both projects use Go, but Syncthing focuses on synchronization logic, while AList emphasizes file listing and management functionality.
VS Code in the browser
Pros of code-server
- Provides a full VS Code environment in the browser, offering a more comprehensive development experience
- Supports a wide range of programming languages and extensions
- Allows for remote development and collaboration on shared projects
Cons of code-server
- Requires more system resources due to its full IDE functionality
- Setup and configuration can be more complex for beginners
- May have higher latency compared to native desktop IDEs
Code comparison
AList:
func (d *Driver) Link(ctx context.Context, args model.LinkArgs) (*model.Link, error) {
file, err := d.getFile(args.Path)
if err != nil {
return nil, err
}
return &model.Link{URL: file.DownloadUrl}, nil
}
code-server:
export async function getWorkspaceRoot(
folder: string,
workspaceFilePath?: string
): Promise<string | undefined> {
if (workspaceFilePath) {
return path.dirname(workspaceFilePath)
}
return folder
}
Summary
While AList focuses on file management and sharing across multiple storage providers, code-server offers a complete browser-based IDE experience. AList is lighter and more specialized for file operations, while code-server provides a full development environment at the cost of increased complexity and resource usage. The choice between them depends on whether you need a file management solution or a remote development platform.
"rsync for cloud storage" - Google Drive, S3, Dropbox, Backblaze B2, One Drive, Swift, Hubic, Wasabi, Google Cloud Storage, Azure Blob, Azure Files, Yandex Files
Pros of rclone
- More extensive cloud storage support, including over 40 providers
- Command-line interface offers greater flexibility and automation capabilities
- Robust synchronization and backup features
Cons of rclone
- Steeper learning curve due to command-line interface
- Lacks a built-in web interface for easy file management
Code comparison
rclone:
rclone copy /local/path remote:path
rclone sync /local/path remote:path
rclone mount remote:path /mount/point
AList:
// No direct code comparison available
// AList primarily uses a web interface
// and configuration files for setup
Key differences
- Interface: rclone is command-line based, while AList offers a web interface
- Focus: rclone emphasizes file transfer and synchronization, AList prioritizes web-based file management
- Storage support: rclone supports more cloud providers, AList focuses on popular services and local storage
- Use case: rclone is better for power users and automation, AList is more user-friendly for general file browsing and sharing
Both projects serve different needs in the file management ecosystem, with rclone offering more advanced features and AList providing a more accessible web-based solution.
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
English | ä¸æ| æ¥æ¬èª | Contributing | CODE_OF_CONDUCT
Features
- Multiple storages
- Local storage
- Aliyundrive
- OneDrive / Sharepoint (global, cn,de,us)
- 189cloud (Personal, Family)
- GoogleDrive
- 123pan
- FTP / SFTP
- PikPak
- S3
- Seafile
- UPYUN Storage Service
- WebDav(Support OneDrive/SharePoint without API)
- Teambition(China,International)
- Mediatrack
- 139yun (Personal, Family)
- YandexDisk
- BaiduNetdisk
- Terabox
- UC
- Quark
- Thunder
- Lanzou
- ILanzou
- Aliyundrive share
- Google photo
- Mega.nz
- Baidu photo
- SMB
- 115
- Cloudreve
- Dropbox
- FeijiPan
- dogecloud
- Easy to deploy and out-of-the-box
- File preview (PDF, markdown, code, plain text, ...)
- Image preview in gallery mode
- Video and audio preview, support lyrics and subtitles
- Office documents preview (docx, pptx, xlsx, ...)
-
README.md
preview rendering - File permalink copy and direct file download
- Dark mode
- I18n
- Protected routes (password protection and authentication)
- WebDav (see https://alist.nn.ci/guide/webdav.html for details)
- Docker Deploy
- Cloudflare Workers proxy
- File/Folder package download
- Web upload(Can allow visitors to upload), delete, mkdir, rename, move and copy
- Offline download
- Copy files between two storage
- Multi-thread downloading acceleration for single-thread download/stream
Document
Demo
Discussion
Please go to our discussion forum for general questions, issues are for bug reports and feature requests only.
Sponsor
AList is an open-source software, if you happen to like this project and want me to keep going, please consider sponsoring me or providing a single donation! Thanks for all the love and support: https://alist.nn.ci/guide/sponsor.html
Special sponsors
- VidHub - An elegant cloud video player within the Apple ecosystem. Support for iPhone, iPad, Mac, and Apple TV.
- äºæ´²äº - é«é²æå¡å¨|æå¡å¨ç§ç¨|ç¦å·é«é²|广ä¸çµä¿¡|é¦æ¸¯æå¡å¨|ç¾å½æå¡å¨|æµ·å¤æå¡å¨ - å½å é è°±çä¼ä¸çº§äºè®¡ç®æå¡æä¾å (sponsored Chinese API server)
- æ¾èµæº - é¿éäºçèµæºæç´¢å¼æ
Contributors
Thanks goes to these wonderful people:
License
The AList
is open-source software licensed under the AGPL-3.0 license.
Disclaimer
- This program is a free and open source project. It is designed to share files on the network disk, which is convenient for downloading and learning Golang. Please abide by relevant laws and regulations when using it, and do not abuse it;
- This program is implemented by calling the official sdk/interface, without destroying the official interface behavior;
- This program only does 302 redirect/traffic forwarding, and does not intercept, store, or tamper with any user data;
- Before using this program, you should understand and bear the corresponding risks, including but not limited to account ban, download speed limit, etc., which is none of this program's business;
- If there is any infringement, please contact me by email, and it will be dealt with in time.
@Blog · @GitHub · @TelegramGroup · @Discord
Top Related Projects
📂 Web File Browser
☁️ Nextcloud server, a safe home for all your data
🐦 A personal music streaming server that works.
Open Source Continuous File Synchronization
VS Code in the browser
"rsync for cloud storage" - Google Drive, S3, Dropbox, Backblaze B2, One Drive, Swift, Hubic, Wasabi, Google Cloud Storage, Azure Blob, Azure Files, Yandex Files
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot