同学们好!在上节课,我们完成了基于FastDFS和Nginx的分布式文件存储服务器的搭建,并通过FastDFS客户机的上传文件命令,成功地将一副本地图片上传至FastDFS服务器。那么,我们如何通过Go语言程序实现类似的文件上传功能呢?这就是这节课我们要解决的问题。


我们首先需要安装FastDFS客户机面向Go语言的开发工具包,即SDK,然后编写一个基于Go语言的测试程序,将一副本地图片上传至FastDFS服务器。


我们先来安装FastDFS客户端SDK。


我们可以从GitHub上下载FastDFS客户端SDK,并解压到正确的路径下。


之后将FastDFS客户机配置文件,复制到front-end工程目录下的conf子目录中,并对该文件做一些修改,指定最大连接数和跟踪服务器的IP地址及端口。注意,如果我们使用的是Windows操作系统,该文件必须保存为DOS格式。


下面我们将尝试使用Go语言,编写一个上传文件到FastDFS的测试程序。


我们在front-end工程目录下的test子目录中创建一个名为fastdfs.go的文件:

我们首先以FastDFS客户机配置文件的路径为参数,调用FastDFS客户端SDK的NewClientWithConfig函数,创建一个FastDFS客户机对象。打开本地图片文件,并读取其中的图像数据,传给FastDFS客户机对象的UploadByBuffer方法,同时指定文件的扩展名。如果不发生错误的话,我们的图片已经上传到FastDFS服务器中了。FastDFS客户机对象的UploadByBuffer方法成功返回字符串形式的文件凭证,我们将其打印出来。


在VMware中启动Ubuntu虚拟机,在Ubuntu虚拟机中启动FastDFS的跟踪服务器和存储服务器,以及Nginx服务器。直接在test目录下通过“go run”命令启动测试程序,打印文件凭证。


打开浏览器,地址栏中输入包含文件凭证的URL,浏览器窗口中应显示出我们用Go语言代码上传的图片。


谢谢大家,我们下节课再见!