Remote Storage Proxy 是一个轻量级的Docker镜像,提供远程存储代理服务。该镜像作为客户端与各类远程存储服务(如S3兼容对象存储、FTP服务器、WebDAV服务等)之间的中间层,实现请求转发、协议转换、缓存加速及访问控制等功能,旨在简化多存储系统整合、优化远程存储访问性能,并提供统一的存储访问接口。
统一企业内部多类型存储服务(如S3、FTP、本地文件系统)的访问接口,简化业务系统存储适配。
通过本地缓存减少对远程存储的直接请求,提升跨国/跨区域存储服务的访问速度(如加速访问AWS S3海外桶)。
作为存储服务的前置网关,实现访问鉴权、数据脱敏及操作审计,避免客户端直接暴露远程存储凭证。
模拟各类远程存储服务接口,无需搭建真实存储环境即可进行业务系统开发测试。
作为多存储服务的转发层,实现数据跨存储自动同步或备份,提升数据可靠性。
通过Docker Hub或私有仓库拉取镜像:
bashdocker pull remotestorageproxy:latest
启动一个基础代理服务(需通过环境变量或配置文件指定远程存储信息):
bashdocker run -d \ --name remote-storage-proxy \ -p 8080:8080 \ -e REMOTE_TYPE=s3 \ -e REMOTE_URL=[***] \ -e REMOTE_ACCESS_KEY=AKIAEXAMPLE \ -e REMOTE_SECRET_KEY=secret \ remotestorageproxy:latest
支持两种配置方式,可单独使用或组合:
通过-e参数传入环境变量,适合简单配置场景。
通过挂载本地配置文件(如config.yaml)实现复杂配置,支持多远程存储代理、细粒度缓存策略等。配置文件路径默认为/app/config.yaml,可通过CONFIG_PATH环境变量自定义。
为避免容器重启后缓存数据或配置丢失,需挂载本地目录至容器内关键路径:
/app/cache,通过-v /local/cache:/app/cache挂载-v /local/config.yaml:/app/config.yaml挂载/app/logs,通过-v /local/logs:/app/logs挂载服务启动后,通过容器映射端口(默认8080)访问代理接口,接口路径与远程存储协议兼容。例如:
http://localhost:8080/bucket/object.txt(对应远程S3桶bucket下的object.txt)http://localhost:8080/ftp/path/file.txt(对应远程FTP服务器path/file.txt)bashdocker run -d \ --name s3-proxy \ -p 8080:8080 \ -e REMOTE_TYPE=s3 \ -e REMOTE_URL=[***] \ -e REMOTE_ACCESS_KEY=AKIAEXAMPLE \ -e REMOTE_SECRET_KEY=example-secret \ -e CACHE_ENABLED=true \ -e CACHE_SIZE=10GB \ -v /local/cache:/app/cache \ remotestorageproxy:latest
bashdocker run -d \ --name ftp-proxy \ -p 8081:8080 \ -e REMOTE_TYPE=ftp \ -e REMOTE_URL=[***] \ -e REMOTE_USER=ftpuser \ -e REMOTE_PASSWORD=ftppass \ -e PORT=8081 \ # 自定义服务端口 remotestorageproxy:latest
创建docker-compose.yml,配置多服务代理及持久化:
yamlversion: '3.8' services: storage-proxy: image: remotestorageproxy:latest container_name: storage-proxy ports: - "8080:8080" environment: - REMOTE_TYPE=s3 - REMOTE_URL=[***] - REMOTE_ACCESS_KEY=AKIAEXAMPLE - REMOTE_SECRET_KEY=secret - CACHE_ENABLED=true - CACHE_PATH=/app/cache - LOG_LEVEL=info volumes: - ./config.yaml:/app/config.yaml # 挂载自定义配置文件(若需) - ./cache:/app/cache # 持久化缓存 - ./logs:/app/logs # 持久化日志 restart: unless-stopped
| 参数名 | 描述 | 类型 | 默认值 | 可选值 |
|---|---|---|---|---|
REMOTE_TYPE | 远程存储类型 | 字符串 | 无(必填) | s3/ftp/webdav/nfs |
REMOTE_URL | 远程存储服务地址 | 字符串 | 无(必填) | 如s3://s3.amazonaws.com |
REMOTE_ACCESS_KEY | 远程存储访问密钥(如S3的Access Key) | 字符串 | 空 | - |
REMOTE_SECRET_KEY | 远程存储密钥(如S3的Secret Key) | 字符串 | 空 | - |
REMOTE_USER | 远程存储用户名(如FTP/WebDAV) | 字符串 | 空 | - |
REMOTE_PASSWORD | 远程存储密码(如FTP/WebDAV) | 字符串 | 空 | - |
PORT | 代理服务监听端口 | 整数 | 8080 | 1-65535 |
CACHE_ENABLED | 是否启用缓存 | 布尔 | false | true/false |
CACHE_SIZE | 缓存最大容量(启用时必填) | 字符串 | 无 | 如10GB/512MB |
CACHE_PATH | 缓存文件存储路径 | 字符串 | /app/cache | 容器内绝对路径 |
LOG_LEVEL | 日志级别 | 字符串 | info | debug/info/warn/error |
CONFIG_PATH | 自定义配置文件路径 | 字符串 | /app/config.yaml | 容器内绝对路径 |
若使用配置文件(如config.yaml),支持更复杂的配置(示例为S3代理+缓存+访问控制):
yamlremote: type: s3 url: [***] access_key: AKIAEXAMPLE secret_key: secret timeout: 30s # 远程请求超时时间 cache: enabled: true path: /app/cache max_size: 10GB ttl: 24h # 缓存过期时间 server: port: 8080 read_timeout: 60s write_timeout: 60s access_control: allowed_ips: - 192.168.1.0/24 - 10.0.0.1 denied_operations: # 禁止的操作(如删除) - delete
CACHE_TTL自动清理或外部定时任务)。remotestorageproxy:1.0.0)而非latest。来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429