使用FastDfs 实现上传 及 删除

package com.bjpowernode.p2p.admin.fastdfs;

import java.io.IOException;

import org.csource.common.MyException;
import org.csource.fastdfs.ClientGlobal;
import org.csource.fastdfs.StorageClient;
import org.csource.fastdfs.StorageServer;
import org.csource.fastdfs.TrackerClient;
import org.csource.fastdfs.TrackerServer;

/**
 * fastdfs 文件上传
 *
 * @author  ldd
 *
 */
public class FastdfsClient {

/**
     * 文件上传
     *
     * @param bytes  文件字节  
     * @param fileExtend  文件尾名  不需要.
     * @return
     */
    public static String[] uploadFile (byte[] bytes, String fileExtend) {
        
        TrackerServer trackerServer = null;
        StorageServer storageServer = null;
        
        //利用fastdfs客户端,实现文件上传到fastdfs服务器上
        try {
            //代码是模板式的
            //1、加载配置文件
            ClientGlobal.init("fastdfs_client.conf");
            
            //2、创建一个tracker的客户端
            TrackerClient trackerClient = new TrackerClient();
            
            //3、通过trackerClient获取一个连接,连接到Tracker,得到一个TrackerServer
            trackerServer = trackerClient.getConnection();
            
            //4、通过trackerClient获取一个存储节点的StorageServer
            storageServer = trackerClient.getStoreStorage(trackerServer);
            
            //5、通过trackerServer和storageServer构造一个Storage客户端
            StorageClient storageClient = new StorageClient(trackerServer, storageServer);
            
            return storageClient.upload_file(bytes, fileExtend, null);
            
        } catch (IOException e) {
            e.printStackTrace();
        } catch (MyException e) {
            e.printStackTrace();
        } finally {
            try {
                //关闭服务,释放资源
                if (null != storageServer) {
                    storageServer.close();
                }
                if (null != trackerServer) {
                    trackerServer.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return null;
    }
    
    /**
     * 文件上传
     *
     * @param bytes 本地文件名
     * @param fileExtend  文件末尾名 不要.
     * @return
     */
    public static String[] uploadFile (String localFile, String fileExtend) {
        
        TrackerServer trackerServer = null;
        StorageServer storageServer = null;
        
        //利用fastdfs客户端,实现文件上传到fastdfs服务器上
        try {
            //代码是模板式的
            //1、加载配置文件
            ClientGlobal.init("fastdfs_client.conf");
            
            //2、创建一个tracker的客户端
            TrackerClient trackerClient = new TrackerClient();
            
            //3、通过trackerClient获取一个连接,连接到Tracker,得到一个TrackerServer
            trackerServer = trackerClient.getConnection();
            
            //4、通过trackerClient获取一个存储节点的StorageServer
            storageServer = trackerClient.getStoreStorage(trackerServer);
            
            //5、通过trackerServer和storageServer构造一个Storage客户端
            StorageClient storageClient = new StorageClient(trackerServer, storageServer);
            
            return storageClient.upload_file(localFile, fileExtend, null);
            
        } catch (IOException e) {
            e.printStackTrace();
        } catch (MyException e) {
            e.printStackTrace();
        } finally {
            try {
                //关闭服务,释放资源
                if (null != storageServer) {
                    storageServer.close();
                }
                if (null != trackerServer) {
                    trackerServer.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return null;
    }
    
    /**
     * 删除图片
     *
     * @param group
     * @param filePath
     * @return
     */
    public static int deleteFile (String group, String filePath) {
        TrackerServer trackerServer = null;
        StorageServer storageServer = null;
        
        //利用fastdfs客户端,实现文件上传到fastdfs服务器上
        try {
            //代码是模板式的
            //1、加载配置文件
            ClientGlobal.init("fastdfs_client.conf");
            
            //2、创建一个tracker的客户端
            TrackerClient trackerClient = new TrackerClient();
            
            //3、通过trackerClient获取一个连接,连接到Tracker,得到一个TrackerServer
            trackerServer = trackerClient.getConnection();
            
            //4、通过trackerClient获取一个存储节点的StorageServer
            storageServer = trackerClient.getStoreStorage(trackerServer);
            
            //5、通过trackerServer和storageServer构造一个Storage客户端
            StorageClient storageClient = new StorageClient(trackerServer, storageServer);
            
            //fastdfs删除文件
            return storageClient.delete_file(group, filePath);
            
        } catch (IOException e) {
            e.printStackTrace();
        } catch (MyException e) {
            e.printStackTrace();
        } finally {
            try {
                //关闭服务,释放资源
                if (null != storageServer) {
                    storageServer.close();
                }
                if (null != trackerServer) {
                    trackerServer.close();
                }
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return -1;
    }
}

时间: 2024-10-17 07:46:00

使用FastDfs 实现上传 及 删除的相关文章

使用C#WebClient类访问(上传/下载/删除/列出文件目录)由IIS搭建的http文件服务器

前言 为什么要写这边博文呢?其实,就是使用C#WebClient类访问由IIS搭建的http文件服务器的问题花了我足足两天的时间,因此,有必要写下自己所学到的,同时,也能让广大的博友学习学习一下. 本文足如有不足之处,请在下方留言提出,我会进行改正的,谢谢! 搭建IIS文件服务器 本博文使用的操作系统为Windows 10 企业版,其他Windows系统类似,请借鉴: 一.当然,开始肯定没有IIS,那该怎么办?需要一个软件环境进行搭建,具体方法如下: 1)打开“控制面板”,找到“程序与功能”,如

PHP中Cookie的基本概念和Cookie上传和删除案例

当我们在浏览网页时,访问每一个web页面都需要使用"HTTP协议"实现,但是HTTP协议是无状态协议,就是说HTTP协议没有一个内建的机制来维护两个事物之间的状态.当一个用户请求一个页面以后,在请求同一个网站上的另外一个页面时,HTTP协议并不能告诉我们两个请求是来自同一个用户,而不能将这两次访问联系到一起,那利用什么解决呢?利用Cookie和Session可以解决. 一.Cookie Cookie是用来将网站的资料记录在客户端的技术,这种技术让web服务器能将一些资料,存放于客户端(

c# 上传文件删除旧文件 记事本提取目录

html: <input id="Fi_Fp" runat="server" name="Fi_Fp"  type="file" /> .cs: using System.IO; using System.Text.RegularExpressions; using System.Windows.Forms; if (Fi_Fp.PostedFile.ContentLength > 0)//上传了新图书 {

又拍云 Node.js 实现文件上传、删除

Node.js 服务端 使用 Node.js + Express.js 实现 服务端 const express = require("express"); const app = express(); const axios = require('axios'); app.set('port', process.env.PORT || 8082); // 静态资源目录,这里放在了根目录,生产环境不允许这样 app.use(express.static(__dirname)); //

使用C#WebClient类访问(上传/下载/删除/列出文件目录)

在使用WebClient类之前,必须先引用System.Net命名空间,文件下载.上传与删除的都是使用异步编程,也可以使用同步编程, 这里以异步编程为例: 1)文件下载: static void Main(string[] args) { //定义_webClient对象 WebClient _webClient = new WebClient(); //使用默认的凭据--读取的时候,只需默认凭据就可以 _webClient.Credentials = CredentialCache.Defau

图片上传-下载-删除等图片管理的若干经验总结

图片上传功能很常见,很多人都觉得这个功能很简单,随着要求的提高,这个图片小系统也真是复杂啊. 需求1: 上传,未了达到"大容量存储"."负载均衡"."性能好","有技术含量"等装逼需求,采用了Fastdfs. 注:FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理. 功能包括:文件存储.文件同步.文件访问(文件上传.文件下载)等,解决了大容量存储和负载均衡的问题. 特别适合以文件为载体的在线服务,如相册网站.视频

图片上传-下载-删除等图片管理的若干经验总结3-单一业务场景的完整解决方案

这次完整地介绍图片上传的完整解决方案,如有bug,后续再补充. 一.图片表 CREATE TABLE `photo` ( `id` bigint(10) unsigned NOT NULL AUTO_INCREMENT, `bizid` bigint(11) NOT NULL DEFAULT '-1' COMMENT '业务id,比如项目的id', `cover` int(11) DEFAULT '0' COMMENT '1:是,0:不是', `sort` int(11) DEFAULT '0'

spring boot(十八)集成FastDFS文件上传下载

上篇文章介绍了如何使用Spring Boot上传文件,这篇文章我们介绍如何使用Spring Boot将文件上传到分布式文件系统FastDFS中. 这个项目会在上一个项目的基础上进行构建. 1.pom包配置 我们使用Spring Boot最新版本1.5.9.jdk使用1.8.tomcat8.0. <dependency> <groupId>org.csource</groupId> <artifactId>fastdfs-client-java</art

Struts2 文件上传,下载,删除

本文介绍了: 1.基于表单的文件上传 2.Struts 2 的文件下载 3.Struts2.文件上传 4.使用FileInputStream FileOutputStream文件流来上传 5.使用FileUtil上传 6.使用IOUtil上传 7.使用IOUtil上传 8.使用数组上传多个文件 9.使用List上传多个文件 ----1.基于表单的文件上传----- fileupload.jsp <body> <form action="showFile.jsp" na