- 上面base_path目录要是不存在记得创建

文章插图
- 进入nginx_fdfs的安装目录中,去nginx.conf中配置fastdfs-nginx的扩展模块
# 编辑nginx.conf文件vim /usr/local/nginx_fdfs/conf/nginx.conf # 配置内容location ~ /group[1-9]/M0[0-9] {ngx_fastdfs_module;}# 解读:ngx_fastdfs_module#这个指令不是Nginx本身提供的,是扩展模块提供的,根据这个指令找到FastDFS提供的Nginx模块配置文件,然后找到Tracker,最终找到Stroager
文章插图
- 启动nginx
/usr/local/nginx_fdfs/sbin/nginx -c /usr/local/nginx_fdfs/conf/nginx.conf-t /usr/local/nginx_fdfs/sbin/nginx -c /usr/local/nginx_fdfs/conf/nginx.conf # 保险起见,查看nginx是否启动成功ps -ef | grep nginx 
文章插图

文章插图
- 注意:这里很容易出现启动不起来,如果下面这个进程没有启动起来
nobody389538940 15:45 ?00:00:00 nginx: worker process - 那么:就去查看日志文件
cd /usr/local/nginx_fdfs/logs# 还有一份日志中也可能出现错误信息cd /opt/fastdfs/nginx_mod 
文章插图

文章插图
2.4、Java操作FastDFS2.3.2、扩展模块执行流程
- 下面这个流程很重要,涉及到另外更深入的知识( 如:集群部署FastDFS,本篇博客没有说明集群部署,哪些就是固定命令和流程,百度复制粘贴修改即可 )

文章插图
2.4.1、文件上传
- 在resources目录下创建fastdfs.conf文件,并编写如下内容:
tracker_server=服务器ip:22122 - 编写文件上传代码
package com.zixieqing; import org.csource.common.MyException;import org.csource.fastdfs.*; import java.io.IOException; /** * @author : ZiXieQing * @version : V1.0.0 * @className : UploadFile * @description : 该类功能 FastDFS文件上传 * @packageName : com.zixieqing */ public class UploadFile {public static void main(String[] args) {TrackerServer trackerServer = null;StorageServer storageServer = null;try {// 1、初始化配置文件ClientGlobal.init("fastdfs.conf");// 2、创建tracker客户端TrackerClient trackerClient = new TrackerClient();// 3、获取trackerServertrackerServer = trackerClient.getConnection();// 4、获取storageServerstorageServer = trackerClient.getStoreStorage(trackerServer);// 5、创建storage客户端 - 这个对象就是用来上传文件、下载文件、删除文件的StorageClient storageClient = new StorageClient(trackerServer, storageServer);// 6、上传文件/*这里有两个API需要了解String[] upload_file(byte[] file_buff, int offset, int length, String file_ext_name, NameValuePair[] meta_list)这个API常用来web中上传文件的参数1 file_buff、文件字节offset、length、从文件的那个位置开始上传,截止位置参数4 file_ext_name、文件后缀参数5 meta_list、文件的属性文件String[] upload_file(String local_filename, String file_ext_name, NameValuePair[] meta_list)这个API是上传本地文件的参数1 local_filename、本地文件的绝对路径参数2 file_ext_name、文件后缀名参数3 meta_list、文件的属性文件,linux1中的哪个meta data,一般都不传上述这两个API,注意返回值,这个String[] 很重要,就是涉及到linux中的那个组名group 和 远程文件名remote_filename,这个group和remote_fileName一般是存在数据库中的*/String[] result = storageClient.upload_file("C:\Users\ZiXieQing\Desktop\图库\19.jpg", "jpg", null);// 7、验证一下for (String data : result) {System.out.println("data = https://www.isolves.com/it/rj/jy/2022-06-06/" + data);}} catch (IOException e) {throw new RuntimeException(e);} catch (MyException e) {throw new RuntimeException(e);} finally {// 8、释放资源if (storageServer != null) {try {storageServer.close();} catch (IOException e) {throw new RuntimeException(e);}}if (trackerServer != null) {try {trackerServer.close();} catch (IOException e) {throw new RuntimeException(e);}}}}}
推荐阅读
- 如何批量修改文件名
- 苹果|罗永浩谈苹果新系统发布:有点放飞自我 一口气抄了锤子四五个功能
- iOS|苹果iOS 16系统支持横向人脸解锁:老外感到很惊喜
- 苹果|教你第一时间升级更新!iOS 16 Beta描述文件下载
- Windows操作系统|Win11年度版本22H2特性曝光:回滚系统更方便
- 苹果|苹果发布WatchOS 9系统:4款炫酷表盘、吃药能提醒
- 苹果|苹果发布MacOS 13系统:3A游戏大作正式杀入Mac
- 苹果|今晚发布!iOS 16 Beta描述文件提前偷跑:图标变样了
- 人力资源档案管理系统查询 个人档案查询系统
- 微软|Edge成新一代传文件“神器”:新功能几乎可传所有内容
