Web Asset Server 是 Specify 的附件服务器实现,用于处理 Specify 系统的附件存储、管理及相关服务。该实现主要面向 Ubuntu 系统,其他 Linux 系统需少量修改即可运行,Windows 系统需大量适配才能使用。其核心功能包括附件的元数据处理、缩略图生成、Web 服务提供等,旨在为 Specify 客户端提供统一的附件访问接口。
依赖组件列表
Ubuntu 系统依赖安装命令
shellsudo apt-get -y install --no-install-recommends \ python-pip \ imagemagick \ ghostscript sudo pip install -r requirements.txt
shellgit clone git://github.com/specify/web-asset-server.git cd web-asset-server
修改工作目录下的 settings.py 文件,关键配置项包括:
SERVER:设置为 'paste'(推荐使用 Paste 服务器)attachment.key:生成或获取访问密钥(需与 Specify 配置一致)Docker 部署(推荐)
Dockerfile
dockerfileFROM ubuntu:latest WORKDIR /app RUN apt-get update && apt-get install -y --no-install-recommends \ python3 \ python3-pip \ imagemagick \ ghostscript \ && rm -rf /var/lib/apt/lists/* COPY requirements.txt . RUN pip3 install --no-cache-dir -r requirements.txt COPY . . RUN sed -i 's/SERVER = .*/SERVER = "paste"/' settings.py EXPOSE 8080 CMD ["python3", "server.py"]
docker-compose.yml
yamlversion: '3' services: web-asset-server: build: . ports: - "8080:8080" volumes: - ./settings.py:/app/settings.py - ./assets:/app/assets # 附件存储目录(可选) restart: always
启动命令
shelldocker-compose up -d
传统部署(系统服务)
使用 Paste 服务器
在 settings.py 中设置 SERVER = 'paste',通过以下命令启动:
shellpython server.py
特权端口访问(如 80 端口)
推荐使用 authbind 工具:
shellsudo apt-get install authbind # 允许当前用户使用 80 端口 touch 80 && chmod u+x 80 && sudo mv 80 /etc/authbind/byport # 启动命令 authbind python server.py
systemd 服务部署
/etc/systemd/system/web-asset-server.service:ini[Unit] Description=Specify Web Asset Server Wants=network.target [Service] User=specify # 替换为实际运行用户 WorkingDirectory=/home/specify/web-asset-server # 替换为实际路径 ExecStart=/usr/bin/authbind /usr/bin/python /home/specify/web-asset-server/server.py # 若使用特权端口 Restart=always [Install] WantedBy=multi-user.target
shellsudo systemctl daemon-reload sudo systemctl enable --now web-asset-server
upstart 服务部署
/etc/init/web-asset-server.conf:inidescription "Specify Web Asset Server" author "Ben Anhalt <anhalt@ku.edu>" start on runlevel [234] stop on runlevel [0156] setuid anhalt # 替换为实际运行用户 chdir /home/anhalt/web-asset-server # 替换为实际路径 exec /usr/bin/authbind /usr/bin/python /home/anhalt/web-asset-server/server.py # 若使用特权端口 respawn
shellsudo initctl reload-configuration sudo start web-asset-server
日志路径:/var/log/upstart/web-asset-server.log
若 Specify 7 服务器启用 HTTPS,需为 Web Asset Server 配置 HTTPS。推荐通过 Nginx 反向代理实现,配置示例参考 https://gist.github.com/benanhalt/d43a3fa7bf04edfc0bcdc11c612b2278%E3%80%82%E5%85%B3%E9%94%AE%E9%85%8D%E7%BD%AE%E5%8C%85%E6%8B%AC%EF%BC%9A
web_asset_store.xml 资源中的链接需在 Specify 全局偏好中添加以下属性(通过 Specify 客户端的“帮助 > 关于”菜单,双击“系统信息”中的机构名称进入配置界面):
| 属性名 | 值说明 |
|---|---|
USE_GLOBAL_PREFS | 设置为 true,启用全局偏好 |
attachment.key | 与 settings.py 中的密钥一致 |
attachment.url | 服务器访问地址,格式:http://[服务器IP或域名]/web_asset_store.xml |
attachment.use_path | 设置为 false,使用 URL 访问而非本地路径 |
Web Asset Server 版权所有 © 2020 Specify Collections Consortium。
本软件为自由软件,遵循 GNU General Public License 2 (GPL2) 协议,不提供任何明示或暗示的担保。
Specify Collections Consortium
Biodiversity Institute
University of Kansas
1345 Jayhawk Blvd.
Lawrence, KS 66045 USA
官网:[***]
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务