You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在CVAT中永久允许访问私有网络S3存储?

CVAT访问本地S3存储的私有网络权限永久解决方法

问题背景

通过docker-compose部署CVAT后,访问本地Docker容器中的S3存储时出现报错:

  • UI提示:无法创建云存储资源:资源<my-bucket>未找到,可能已被删除
  • 后台日志显示:请求因规则Deny: Private Range被拒绝,目标IP为S3容器的动态私有IP(如172.18.0.12)

临时设置环境变量SMOKESCREEN_OPTS=--allow-address=xxx可临时解决,但S3容器IP不固定,重启后失效。需要实现永久允许私有网络访问的配置。

永久解决方案:固定子网并允许整个网段

步骤1:配置S3容器的固定子网

修改S3(如MinIO)的docker-compose.yml,指定自定义网络并设置固定子网:

# /opt/minio/docker-compose.yml
networks:
  s3minio:
    name: "s3minio"
    external: false # 在此处创建网络
    ipam:
      config:
        - subnet: 172.99.0.0/16 # 自定义私有子网,后续CVAT将允许该网段

步骤2:配置CVAT允许该私有网段

修改CVAT的.env文件,设置SMOKESCREEN_OPTS允许整个固定子网:

# /opt/cvat/.env
SMOKESCREEN_OPTS=--allow-range=172.99.0.0/16

步骤3:重启服务

分别重启S3和CVAT的docker-compose服务,使配置生效:

# 重启S3服务
cd /opt/minio && docker compose up -d

# 重启CVAT服务
cd /opt/cvat && docker compose up -d

临时替代方案

如果暂时无法配置固定子网,可使用以下临时方案:

方案1:脚本自动获取S3容器IP并添加允许规则

创建脚本set_allow_address_smokescreen_opts_in_cvat.sh,自动获取S3容器的当前IP并更新CVAT的环境变量:

# set_allow_address_smokescreen_opts_in_cvat.sh
NETWORK=s3minio
# 替换minio-nginx-1为你的S3容器名称
printf 'SMOKESCREEN_OPTS=--allow-address=%s\n' $( docker inspect minio-nginx-1 | jq -r "map(.NetworkSettings.Networks.$NETWORK.IPAddress)[]") >> /opt/cvat/.env
docker compose -f /opt/cvat/docker-compose.yml up -d

运行脚本即可临时生效,可将脚本加入开机自启或定时任务,避免每次重启后手动操作。

内容的提问来源于stack exchange,提问作者viktorkho

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 07:30:57