当前位置: 首页 > 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文件

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

相关文章:

go-fastfds部署心得

我是windows系统安装 Docker Desktop部署 docker run --name go-fastdfs(任意的一个名称) --privilegedtrue -t -p 3666:8080 -v /data/fasttdfs_data:/data -e GO_FASTDFS_DIR/data sjqzhang/go-fastdfs:lastest docker run:该命令用于运…...

Python第三次练习

Python 一、如何判断一个字符串是否是另一个字符串的子串二、如何验证一个字符串中的每一个字符均在另一个字符串中出现三、如何判定一个字符串中既有数字又有字母四、做一个注册登录系统 一、如何判断一个字符串是否是另一个字符串的子串 实现代码: string1 inp…...

从Java8升级到Java17,特色优化点

从Java8升级到Java17,特色优化点 一、局部变量类型推断二、switch表达式三、文本块四、Records五、模式匹配instanceof六、密封类七、NullPointerException 从Java 8 到 Java 20,Java 已经走过了漫长的道路,自 Java 8 以来,Java 生…...

js实现富文本

当涉及到使用 JavaScript 实现富文本时,一种常见的方法是使用一些现成的富文本编辑器库,比如: Quill:一个功能强大、易于集成的富文本编辑器,支持自定义样式和格式,提供丰富的插件和API。 TinyMCE&#xf…...

每日OJ题_算法_双指针②_力扣1089. 复写零

目录 力扣1089. 复写零 解析代码 力扣1089. 复写零 1089. 复写零 - 力扣(LeetCode) 难度 简单 给你一个长度固定的整数数组 arr ,请你将该数组中出现的每个零都复写一遍,并将其余的元素向右平移。 注意:请不要在…...

C++——红黑树

作者:几冬雪来 时间:2023年12月7日 内容:C——红黑树讲解 目录 前言: 红黑树的概念: 红黑树的性质: 红黑树的路径计算: 最长路径和最短路径: AVL树与红黑树的区别&#xff…...

【神化世界】asp网页500内部服务器错误的解决方法

问题解决方案记录 一、问题 在asp网页调试的时候,不小心改错了,好好的页面突然出现如下错误信息了: 二、解决方法 终于找到了问题所在,是sql语句出错造成的,特别记录一下。 正确的写法 sql"select * from mem…...

java面试题6

1.什么是Java中的泛型(Generic)? 答案:泛型是一种参数化类型的机制,在编译时提供类型安全性检查和重用代码的能力。使用泛型可以在编译时检测类型错误,并减少类型转换的需要。 2.Java中的反射(…...

(03)vite 处理 css

文章目录 系列全集vite 处理css流程vite如何解决协同开发,样式重复覆盖的问题?使用less通过配置,更改vite的css默认行为vite 利用postcss样式兼容低版本浏览器 系列全集 (01)vite 从启动服务器开始 (02&am…...

阿里云上传文件出现的问题解决(跨域设置)

跨域设置引起的问题 起因&#xff1a;开通对象存储服务后&#xff0c;上传文件限制在5M 大小&#xff0c;无法上传大文件。 1.查看报错信息 2.分析阿里云服务端响应内容 <?xml version"1.0" encoding"UTF-8"?> <Error><Code>Invali…...

利用JavaFX生成验证码图片

以下是一个基于 JavaFX 的验证码图片生成小程序的示例代码: import javafx.application.Application; import javafx.embed.swing.SwingFXUtils; import javafx.scene.Scene; import javafx.scene.canvas.Canvas; import javafx.scene.canvas.GraphicsContext; import javafx…...

6-55.汽车类的继承

根据给定的汽车类vehicle&#xff08;包含的数据成员有车轮个数wheels和车重weight&#xff09;声明&#xff0c;完成其中成员函数的定义&#xff0c;之后再定义其派生类并完成测试。 小车类car是它的派生类&#xff0c;其中包含载人数passenger_load。每个类都有相关数据的输出…...

SCI论文——respectively用法

respectively用于配对两组&#xff08;三组&#xff09;事物&#xff0c;表明后一组与前一组按照相同的顺序排列&#xff0c;从而使句意明确。一般是在句子的最后&#xff0c;而且在respectively的前面需要一个逗号“,” 一 、两组事物&#xff1a; 原则是尽可能靠近第二组的…...

解决方案 | 法大大电子签约加速农牧业数字化进程

近年来&#xff0c;我国农业技术得到快速发展&#xff0c;并开发出一批实用的数字农业技术产品&#xff0c;建立了专用网络数字农业技术平台。数字农业是农业现代化的高级阶段&#xff0c;是创新推动农业农村信息化发展的有效手段&#xff0c;也是我国由农业大国迈向农业强国的…...

设计模式之GoF23介绍

深入探讨设计模式&#xff1a;构建可维护、可扩展的软件架构 一、设计模式的背景1.1 什么是设计模式1.2 设计模式的历史 二、设计模式的分类2.1 创建型模式2.2 结构型模式2.3 行为型模式 三、七大设计原则四、设计模式关系结论 :rocket: :rocket: :rocket: 在软件开发领域&…...

UDP协议实现群聊

服务端 import java.io.*; import java.net.*; import java.util.ArrayList; public class Server{public static ServerSocket server_socket;public static ArrayList<Socket> socketListnew ArrayList<Socket>(); public static void main(String []args){try{…...

lombok原理 @Slf4j 怎么生成get set log

Lombok是一种Java库&#xff0c;通过注解的方式提供了许多有用的功能&#xff0c;包括生成Getter、Setter、日志等。Slf4j注解是Lombok中的一种&#xff0c;它用于自动生成日志记录器&#xff08;Logger&#xff09;。 下面简要介绍一下Lombok的原理&#xff0c;以及Slf4j注解…...

【目标检测】进行实时检测计数时,在摄像头窗口显示实时计数个数

这里我是用我本地训练的基于yolov8环境的竹签计数模型&#xff0c;在打开摄像头窗口增加了实时计数显示的代码&#xff0c;可以直接运行&#xff0c;大家可以根据此代码进行修改&#xff0c;其底层原理时将检测出来的目标的个数显示了出来。 该项目链接&#xff1a;【目标检测…...

SpringBoot第56讲:SpringBoot集成文件 - 集成EasyExcel之Excel导入导出

集成EasyExcel之Excel导入导出 EasyExcel是一个基于Java的、快速、简洁、解决大文件内存溢出的Excel处理工具。它能让你在不用考虑性能、内存的等因素的情况下,快速完成Excel的读、写等功能。它是基于POI来封装实现的,主要解决其易用性,封装性和性能问题。本文是SpringBoot第…...

python3安装lifelines

目录 一、环境 二、安装lifelines 出现问题 三、测试导入 一、环境&#xff1a; jupyter notebook中新建ipynb文件 二、安装lifelines pip install --upgrade --no-deps githttps://github.com/CamDavidsonPilon/lifelines.git出现问题&#xff1a; 缺少模块autograd、f…...

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周&#xff0c;有很多同学在写期末Java web作业时&#xff0c;运行tomcat出现乱码问题&#xff0c;经过多次解决与研究&#xff0c;我做了如下整理&#xff1a; 原因&#xff1a; IDEA本身编码与tomcat的编码与Windows编码不同导致&#xff0c;Windows 系统控制台…...

业务系统对接大模型的基础方案:架构设计与关键步骤

业务系统对接大模型&#xff1a;架构设计与关键步骤 在当今数字化转型的浪潮中&#xff0c;大语言模型&#xff08;LLM&#xff09;已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中&#xff0c;不仅可以优化用户体验&#xff0c;还能为业务决策提供…...

Spring Boot 实现流式响应(兼容 2.7.x)

在实际开发中&#xff0c;我们可能会遇到一些流式数据处理的场景&#xff0c;比如接收来自上游接口的 Server-Sent Events&#xff08;SSE&#xff09; 或 流式 JSON 内容&#xff0c;并将其原样中转给前端页面或客户端。这种情况下&#xff0c;传统的 RestTemplate 缓存机制会…...

使用分级同态加密防御梯度泄漏

抽象 联邦学习 &#xff08;FL&#xff09; 支持跨分布式客户端进行协作模型训练&#xff0c;而无需共享原始数据&#xff0c;这使其成为在互联和自动驾驶汽车 &#xff08;CAV&#xff09; 等领域保护隐私的机器学习的一种很有前途的方法。然而&#xff0c;最近的研究表明&…...

ardupilot 开发环境eclipse 中import 缺少C++

目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)

漏洞概览 漏洞名称&#xff1a;Apache Flink REST API 任意文件读取漏洞CVE编号&#xff1a;CVE-2020-17519CVSS评分&#xff1a;7.5影响版本&#xff1a;Apache Flink 1.11.0、1.11.1、1.11.2修复版本&#xff1a;≥ 1.11.3 或 ≥ 1.12.0漏洞类型&#xff1a;路径遍历&#x…...

【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制

使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下&#xff0c;限制某个 IP 的访问频率是非常重要的&#xff0c;可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案&#xff0c;使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...

scikit-learn机器学习

# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...

4. TypeScript 类型推断与类型组合

一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式&#xff0c;自动确定它们的类型。 这一特性减少了显式类型注解的需要&#xff0c;在保持类型安全的同时简化了代码。通过分析上下文和初始值&#xff0c;TypeSc…...

【LeetCode】算法详解#6 ---除自身以外数组的乘积

1.题目介绍 给定一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O…...