alist编译记录

Alist安装与编译指南
该文提供了在Linux环境下安装和编译Alist的详细步骤,包括前端和后端的构建,使用npm和pnpm管理依赖,以及通过git克隆源码。文章还介绍了如何进行本地编译,设置ldflags,并提供了两种不同的国际化方案,一种通过Crowdin平台,另一种是直接下载中文翻译文件。

服务器环境

Linux version 3.10.0-327.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC) ) #1 SMP Thu Nov 19 22:10:57 UTC 2015

前端

yum install npm
npm install -g npm@9.5.0
npm install pnpm -g
git clone --recursive https://github.com/alist-org/alist-web.git
cd alist-web
pnpm run build

后端

yum install screen
screen -R alist # 开screen避免掉线编译中断
rpm --import https://mirror.go-repo.io/centos/RPM-GPG-KEY-GO-REPO
curl -s https://mirror.go-repo.io/centos/go-repo.repo | tee /etc/yum.repos.d/go-repo.repo
yum install golang
git clone https://github.com/alist-org/alist.git
cd alist
vi build-local.sh # 新建一个本地编译的脚本,复制以下内容
------
rm -rf ./public/dist/*
cp -r ../alist-web/dist ./public/ # 注意前端代码路径
appName="alist"
builtAt="$(date +'%F %T %z')"
goVersion=$(go version | sed 's/go version //')
gitAuthor=$(git show -s --format='format:%aN <%ae>' HEAD)
gitCommit=$(git log --pretty=format:"%h" -1)
version=$(git describe --long --tags --dirty --always)
webVersion=$(wget -qO- -t1 -T2 "https://api.github.com/repos/alist-org/alist-web/releases/latest" | grep "tag_name" | head -n 1 | awk -F ":" '{print $2}' | sed 's/\"//g;s/,//g;s/ //g')
ldflags="\
-w -s \
-X 'github.com/alist-org/alist/v3/internal/conf.BuiltAt=$builtAt' \
-X 'github.com/alist-org/alist/v3/internal/conf.GoVersion=$goVersion' \
-X 'github.com/alist-org/alist/v3/internal/conf.GitAuthor=$gitAuthor' \
-X 'github.com/alist-org/alist/v3/internal/conf.GitCommit=$gitCommit' \
-X 'github.com/alist-org/alist/v3/internal/conf.Version=$version' \
-X 'github.com/alist-org/alist/v3/internal/conf.WebVersion=$webVersion' \
"
go build -ldflags="$ldflags" 
-----

bash build-local.sh  # 编译

./alist admin # 查看管理员信息
./alist server # 启动服务
vi ./data/config.json # 可修改端口

国际化

方案1:
# crowdin 环境变量配置,先去crowdin官网注册获取api-token,创建一个project获取project id
# https://crowdin.com/project/alist/zh-CN
export CROWDIN_PROJECT_ID=***
export CROWDIN_PERSONAL_TOKEN=***
pnpm run i18n:release

方案2:直接下载中文翻译文件
[root@ecs-G3x6u alist]# wget https://crowdin.com/backend/download/project/alist/zh-CN.zip --no-check-certificate
[root@ecs-G3x6u alist]# unzip zh-CN.zip 
Archive:  zh-CN.zip
   creating: src/
   creating: src/lang/
   creating: src/lang/zh-CN/
  inflating: src/lang/zh-CN/settings.json  
  inflating: src/lang/zh-CN/metas.json  
  inflating: src/lang/zh-CN/settings_other.json  
  inflating: src/lang/zh-CN/manage.json  
  inflating: src/lang/zh-CN/storages.json  
  inflating: src/lang/zh-CN/login.json  
  inflating: src/lang/zh-CN/drivers.json  
  inflating: src/lang/zh-CN/global.json  
  inflating: src/lang/zh-CN/users.json  
  inflating: src/lang/zh-CN/home.json  
 extracting: src/lang/zh-CN/index.json  
  inflating: src/lang/zh-CN/tasks.json  
  inflating: src/lang/zh-CN/br.json  
  inflating: src/lang/zh-CN/indexes.json  
[root@ecs-G3x6u alist]# ls
alist  alist-web  src  zh-CN.zip
[root@ecs-G3x6u alist]# cp -r ./src/lang/zh-CN ./alist-web/src/
app/        components/ hooks/      index.d.ts  lang/       main.tsx    pages/      store/      types/      utils/      
[root@ecs-G3x6u alist]# cp -r ./src/lang/zh-CN ./alist-web/src/lang/
[root@ecs-G3x6u alist]# cd alist-web/
[root@ecs-G3x6u alist-web]# node ./scripts/i18n.mjs

参考

本文同步于个人Github博客:https://github.com/cloudswave/blog/issues/29,欢迎留言。

<think>我们正在讨论如何在AList中启用打包下载功能。根据之前的对话,用户已经部署了AList,现在想要启用打包下载功能。打包下载功能允许用户将多个文件或整个文件夹打包成一个压缩文件(如ZIP)进行下载,这对于下载大量小文件特别有用,因为可以避免逐个下载的麻烦。 在AList的官方文档中,打包下载功能默认是启用的,但可能需要一些配置或额外的步骤来确保其正常工作。以下是关键点: 1. **确认AList版本**:确保使用的AList版本支持打包下载功能。较新的版本通常都支持。 2. **配置存储策略**:在添加存储时,需要确保存储策略允许打包下载。大部分存储驱动都支持,但有些可能需要额外配置。 3. **设置打包下载的临时目录**:打包操作需要临时目录来创建压缩文件。可以通过环境变量或配置文件设置临时目录。 4. **调整最大打包大小**:AList默认有最大打包大小限制(如2GB),可以通过配置调整。 具体步骤: 1. **设置临时目录**:打包过程中生成的临时文件需要存储在一个目录中。可以通过环境变量`TEMP_DIR`来设置,或者通过配置文件设置。例如,在启动AList时设置环境变量: ```bash TEMP_DIR=/path/to/temp ./alist server ``` 或者在Docker中,可以通过`-e`参数设置环境变量: ```bash docker run -d --restart=always -v /etc/alist:/opt/alist/data -v /path/to/temp:/temp -p 5244:5244 -e TEMP_DIR=/temp --name="alist" xhofe/alist:latest ``` 这里将宿主机的`/path/to/temp`目录映射到容器内的`/temp`,并设置环境变量`TEMP_DIR`为`/temp`。 2. **调整打包大小限制**:在AList管理页面,进入“设置”->“全局设置”,找到“最大打包大小”设置项。默认是`2097152000`字节(2GB),可以按需调整。注意:这个值不能超过可用磁盘空间。 3. **确保存储驱动支持**:大部分存储驱动(如本地存储、阿里云盘等)都支持打包下载。如果使用WebDAV等驱动,需要确认其是否支持。 4. **权限问题**:确保临时目录有足够的写入权限,并且磁盘空间足够。 5. **重启AList**:修改配置后,需要重启AList服务。 如果使用Docker部署,还需要注意挂载的临时目录的权限。在Linux系统中,可能需要设置目录权限为可写: ```bash chmod -R 777 /path/to/temp ``` 另外,如果用户在前端点击打包下载时遇到问题,可以查看AList的日志来排查问题。日志通常会记录打包过程中的错误信息。 参考引用: [^1]: 在之前的回答中,我们提到过使用环境变量来配置AList,例如设置临时目录。 [^2]: 在Nuitka打包的上下文中,我们提到了如何包含数据目录,这与AList设置临时目录的思路类似,即通过指定目录映射来确保程序可以访问所需资源。 [^3]: 在编译ffmpeg的上下文中,我们提到了进入特定目录执行命令,这与设置环境变量和目录权限的操作类似。 因此,总结启用打包下载的步骤: 1. 为打包下载设置临时目录,并确保AList有读写权限。 2. 在全局设置中调整最大打包大小(可选)。 3. 重启AList服务。 如果按照以上步骤操作,应该可以成功启用打包下载功能。 下面,我们将生成相关问题: §§相关问题§§ 1. 如何检查AList的日志以排查打包下载失败的问题? 2. 除了ZIP,AList支持哪些其他格式的打包下载? 3. 如何调整AList的打包下载超时时间?</think>### 在AList中启用打包下载功能的步骤 在AList中启用打包下载功能需要修改配置文件并确保相关依赖已安装,以下是具体步骤: 1. **修改配置文件** - 打开AList的配置文件`data/config.json` - 在`"scheme"`配置块中添加以下参数: ```json "packages": { "download": true, "package_size": 2000, "package_timeout": 60 } ``` - `download: true`:启用打包下载功能 - `package_size`:最大打包大小(单位:MB) - `package_timeout`:打包超时时间(单位:秒) 2. **安装压缩工具(必需依赖)** - Linux系统安装zip/unzip: ```bash sudo apt install zip unzip # Debian/Ubuntu sudo yum install zip unzip # CentOS/RHEL ``` - Windows系统需确保系统PATH包含压缩工具路径 3. **重启AList服务** ```bash # Docker部署 docker restart alist # 直接运行 ./alist stop && ./alist start ``` 4. **验证功能** - 登录AList网页端 - 勾选多个文件/文件夹 - 点击顶部工具栏的"打包下载"按钮 - 系统会自动生成ZIP压缩包并触发下载 > **重要提示**: > 1. 打包操作需要临时存储空间,确保`/tmp`目录有足够空间(至少是待打包文件大小的2倍)[^1] > 2. 大文件打包需调整`package_size`和`package_timeout`参数 > 3. Windows系统需配置7z.exe或WinRAR.exe的系统PATH[^2]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值