分布式文件系统FastDFS

	分布式文件系统FastDFS

FastDFS — OSS 存储图片,视频等资源。
FastDFS 是什么?
分布式文件系统
a. 是由阿里巴巴的大牛余庆,使用C语言开发
b. 支持文件大小 4KB-500MB 之间
c. 使用者 京东,支付宝等
4.2 做什么?
存储图片,视频等资源。
4.3 怎么使用?
文件上传的时候,
文件上传需要注意的是什么?
a. 文件的名称不能重复。
b. 文件的后缀名与原有文件的后缀名保存一致
c. 需要注意文件上传的格式,大小等设置。

***文件上传流程:
	client:		客户端,发起上传请求
	tracker:	相当于路由 ,tracker 获取文件上传的所在位置!{在storage中获取ip,port}
	storage:	真正的存储文件的!会自动生产一个文件Id,并且将文件写入磁盘!
返回文件上传的位置!

使用步骤:

  1. 下载fastDFS 依赖jar包
    2. 编写一个配置文件tracker.conf 配置fastDFS 服务器地址
    3. 编写代码
    文件上传控制器:http://api.gmall.com/admin/product/fileUpload
    4. 测试
    重启service-product.

代码实现:

1.配置文件tracker.conf

#linux的连接和端口
tracker_server=192.168.200.128:22122

# 连接超时时间,针对socket套接字函数connect,默认为30秒
connect_timeout=30000

# 网络通讯超时时间,默认是60秒
network_timeout=60000

2.Controller层

@RestController
@RequestMapping("/admin/product")
public class FileUploadController {
    // String ipAddr = http://192.168.200.128:8080/ 硬编码!
    // 文件上传,必须指定文件的服务器地址
    @Value("${fileServer.url}") // 叫软编码,将可能会发生变化的数据写在配置文件中,软编码!
    private String fileUrl ;    // fileUrl = http://192.168.200.128:8080/ 回显

    // http://api.gmall.com/admin/product/fileUpload
    // 利用springmvc 上传文件知识
    // file 与后台管理系统页面对应

    //http://api.gmall.com/admin/product/fileUpload
    @RequestMapping("fileUpload")
    public Result<String> fileUpload(MultipartFile file) throws Exception {
        //读取配置文件
        String configFile = this.getClass().getResource("/tracker.conf").getFile();
        //声明一个返回路径的变量
        String path = "";
        if (null!= configFile){
            //初始化
            ClientGlobal.init(configFile);
            //创建trackerClient客户端
            TrackerClient trackerClient = new TrackerClient();
            //用trackerClient获取连接
            TrackerServer trackerServer = trackerClient.getConnection();
            // 创建一个StorageClient1
            StorageClient1 storageClient1 = new StorageClient1(trackerServer, null);
            //调用上传方法
            //第一个参数表示上传文件的子节数组,第二参数表示文件后缀名 zly.jpg
            String extName = FilenameUtils.getExtension(file.getOriginalFilename());
            //返回一个文件上传的路径 ,文件所在的路径
            path = storageClient1.upload_appender_file1(file.getBytes(), extName, null);
            System.out.println("上传文件之后返回的完整路径:\t"+fileUrl+path);
        }
        //返回文件路径
        return Result.ok(fileUrl+path);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值