当前位置: 首页 > news >正文

go-fastfds部署心得

我是windows系统安装 Docker Desktop部署  

docker run --name go-fastdfs(任意的一个名称) --privileged=true -t -p 3666:8080 -v /data/fasttdfs_data:/data -e GO_FASTDFS_DIR=/data sjqzhang/go-fastdfs:lastest

docker run:该命令用于运行一个新的Docker容器。

--name go-fastdfs:指定新容器的名称,在本例中,它设置为go-fastdfs。

--privileged=true:向容器授予扩展权限。这对于需要提升权限的某些操作通常是必要的。

-t:为容器分配一个伪 TTY(终端)。这通常用于与容器的外壳进行交互。

-p 3666:8080:将主机上的3666端口映射到容器上的8080端口。这意味着您可以从主机的端口 3666 访问容器内端口 8080 上运行的服务。

-v /data/fasttdfs_data:/data:将/data/fasttdfs_data宿主机的目录挂载到/data容器内的目录。这用于卷映射,允许数据保留在容器外部。

-e GO_FASTDFS_DIR=/data:在容器内设置一个环境变量,GO_FASTDFS_DIR其值为/data。该环境变量可能被sjqzhang/go-fastdfs图像使用。

sjqzhang/go-fastdfs:指定创建容器时使用的Docker镜像。sjqzhang在本例中,它是为应用程序创建的图像go-fastdfs。

输出“Listen on :8080”表示容器内的应用程序正在侦听端口 8080 上的传入连接。这时候可以能够通过在http://localhost:3666Web 浏览器中访问主机上的服务。

如果只用文件上传接口  到这里已经结束了

下面的配置项是与其他三个接口有密切联系

/group1/get_file_info文件详情接口

/group1/delete文件删除接口

/group1/list_dir文件列表接口

这三个接口都会报这样的一个错误:Can only be called by the cluster ip or 127.0.0.1 or admin_ips(cfg.json),current ip:172.17.0.1

出现这个错误  要修改两个地方   

一、1.docker ps  或者docker images打开你的镜像列表

2. 接着进入镜像内部  docker exec -it go-fastdfs sh(与安装时你起的任意名称对应) 

3. vi  /data/conf/cfg.json  此操作和linux系统的vi、vim类似 所谓的编辑器模式

4. 找到peers字段    peers参数会自动生成一个本地主机ip,但还是需要配置增加一个内网ip

不然使用api时会报:

Can only be called by the cluster ip or 127.0.0.1 or admin_ips(cfg.json),current ip:172.17.0.1

data文件夹下是四个子文件夹

files文件夹:是图片上传以后保存的路径,默认是按日期划分,也可以指定路径。 
log文件夹:是上传信息和运行的日志信息。 
static文件夹:是放置一些前端静态页面xml文件。 
data文件夹:里面是一些上传的后的图片信息记录保存在ldb格式文件,如文件的md5值,上传后的路径,时间戳,Szie大小等.
到这里问题多数情况就解决了 

5. 步骤4操作完不行的话 修改   "admin_ips": ["127.0.0.1", "192.168.12.35"],

"admin_ips"字段类似于白名单的作用

步骤5操作完毕   还不行的话   就要看下面的docker操作了  修改docker网关

若不想通过小黑框操作  可以在外面修改  然后粘贴进容器

docker cp C:\Users\zhouchanghao\Desktop\gofile\conf\cfg.json go-fastdfs:/data/conf/cfg.json

docker   cp   [OPTIONS]   SRC_PATH   CONTAINER:DEST_PATH

  • SRC_PATH:是主机上的文件或目录的路径,这里是 C:\Users\zhouchanghao\Desktop\gofile\conf\cfg.json
  • CONTAINER:是目标容器的名称或 ID,这里是 go-fastdfs
  • DEST_PATH:是容器内目标路径,这里是 /data/conf/cfg.json

OPTIONS 是用于指定一些额外参数的部分。在这个命令中,docker cp 并没有太多的额外选项需要设置,所以 OPTIONS 这一部分通常是省略的。

如果有需要,可以在 docker cp 命令中使用一些选项。例如,常见的选项包括:

  • -L, --follow-link:如果源是符号链接,则会复制链接指向的内容而不是链接本身。
  • --help:显示帮助信息,列出所有可用的选项。
  • -a, --archive:归档模式,保留所有文件的元数据。

在这里命令中,由于没有使用额外的选项,所以 OPTIONS 部分为空。

所以,这个命令的作用是将主机上的 cfg.json 文件复制到运行中的 go-fastdfs 容器的 /data/conf/ 目录下。这样做可以更新容器内的配置文件,使得容器在运行时使用新的配置。

二、修改docker网关

Docker容器启动后,默认会在主机上分配一个网卡,该网卡对应一个网络命名空间,并在这个网络命名空间下随机分配一个IP地址

小黑框操作命令:docker network inspect bridge   或  docker inspect bridge

找到里面 "Config": [
                {
                    "Subnet": "172.17.0.0/16",
                    "Gateway": "172.17.0.1"
                }
            ]

可以看到Subnet和Gateway了

可视化面板如下操作添加即可

{
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "experimental": false,
  "default-address-pools": [
    {
      "base": "你的新的IP地址/掩码",
      "size": 24
    }
  ]
}

docker restart go-fastdfs 重启镜像  完美运行

Windows系统部署

一、将放入随便的路径下

二、 Win+R命令提示符进入上一步存放路径内    执行命令  文件名称 server  如图:

三、

出现此提示代表运行成功  8080为默认端口号  可更改

若被拒绝访问   则以管理员身份重新运行命令提示符重复上面流程

四、返回最初路径  此时多了五个文件夹

files文件夹:是图片上传以后保存的路径,默认是按日期划分,也可以指定路径。 
log文件夹:是上传信息和运行的日志信息。 
static文件夹:是放置一些前端静态页面xml文件。 
data文件夹:里面是一些上传的后的图片信息记录保存在ldb格式文件,如文件的md5值,上传后的路径,时间戳,Szie大小等.

若想修改运行端口  则进入conf文件夹 编辑cfg.json文件

编辑保存即可  其他配置项若自己需要更改则请谨慎操作   (建议不更改)  

相关文章:

  • 办公word-从不是第一页添加页码
  • this.$emit(‘update:isVisible‘, false)作用
  • 使用脚手架创建项目并为拆分页面各自的组件(Web3项目二实战之一)
  • 半导体划片机助力氧化铝陶瓷片切割:科技与工艺的完美结合
  • 科幻未来HUD人工智能科技数据图表仪表盘UI界面AI矢量设计素材图
  • 记录一次云原生线上服务数据迁移全过程
  • 【electron】外语函数接口 FFI
  • 前端开发tips
  • 〖大前端 - 基础入门三大核心之JS篇㊿〗- 面向对象之对象的方法、遍历、深浅克隆
  • 使用postman做接口测试
  • 30 张图解 HTTP 常见的面试题
  • 华为OD机试真题-攀登者1-2023年OD统一考试(C卷)
  • 提示(Prompt)工程中提示词的开发优化基础概念学习总结
  • C# List类常用操作 之 查找
  • HarmonyOS鸿蒙应用开发——HTTP网络访问与封装
  • @angular/forms 源码解析之双向绑定
  • [译]前端离线指南(上)
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • 【跃迁之路】【669天】程序员高效学习方法论探索系列(实验阶段426-2018.12.13)...
  • 4个实用的微服务测试策略
  • Angular Elements 及其运作原理
  • css属性的继承、初识值、计算值、当前值、应用值
  • DataBase in Android
  • JavaScript函数式编程(一)
  • JavaScript类型识别
  • javascript数组去重/查找/插入/删除
  • PermissionScope Swift4 兼容问题
  • Redis 懒删除(lazy free)简史
  • RedisSerializer之JdkSerializationRedisSerializer分析
  • sessionStorage和localStorage
  • Vue2.0 实现互斥
  • weex踩坑之旅第一弹 ~ 搭建具有入口文件的weex脚手架
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 区块链将重新定义世界
  • 如何使用Mybatis第三方插件--PageHelper实现分页操作
  • 异步
  • 阿里云服务器购买完整流程
  • ​520就是要宠粉,你的心头书我买单
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • ​MySQL主从复制一致性检测
  • ​zookeeper集群配置与启动
  • ​业务双活的数据切换思路设计(下)
  • $分析了六十多年间100万字的政府工作报告,我看到了这样的变迁
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (9)YOLO-Pose:使用对象关键点相似性损失增强多人姿态估计的增强版YOLO
  • (阿里巴巴 dubbo,有数据库,可执行 )dubbo zookeeper spring demo
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (分享)一个图片添加水印的小demo的页面,可自定义样式
  • (分享)自己整理的一些简单awk实用语句
  • (黑马C++)L06 重载与继承
  • (简单有案例)前端实现主题切换、动态换肤的两种简单方式
  • (亲测成功)在centos7.5上安装kvm,通过VNC远程连接并创建多台ubuntu虚拟机(ubuntu server版本)...
  • (转)视频码率,帧率和分辨率的联系与区别
  • *_zh_CN.properties 国际化资源文件 struts 防乱码等
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件