高性能服务器装centos,CentOS-7-x86_64-Minimal-1810 安装高性能图片服务器zimg

1.安装依赖

yum install -y openssl-devel libevent-devel libjpeg-devel giflib-devel libpng-devel libwebp-devel ImageMagick-devel libmemcached-devel

2.下载:zimg-3.1.0-Release.x86_64.rpm

wget https://github.com/buaazp/zimg/releases/download/v3.1.0/zimg-3.1.0-Release.x86_64.rpm

3.安装

sudo rpm -ivh zimg-3.1.0-Release.x86_64.rpm

4.运行:

/usr/local/zimg/zimg /usr/local/zimg/conf/zimg.lua

4.开机启动:

chmod +x /etc/rc.d/rc.local

vim /etc/rc.local

//加如下行

/usr/local/zimg/zimg /usr/local/zimg/conf/zimg.lua *

#### 5.关闭防火墙:

systemctl stop firewalld.service

systemctl disable firewalld.service

#### 6.浏览器打开:http://server-ip:4869

![无标题.png](https://upload-images.jianshu.io/upload_images/7848013-a06ea692ffaf1ee0.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

####7.java上传工具类

import java.io.BufferedReader;

import java.io.ByteArrayOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.net.HttpURLConnection;

import java.net.MalformedURLException;

import java.net.URL;

import java.net.URLConnection;

import org.springframework.beans.factory.annotation.Value;

import org.springframework.stereotype.Component;

import org.springframework.web.multipart.MultipartFile;

import com.alibaba.fastjson.JSONObject;

import lombok.extern.slf4j.Slf4j;

/**

@类说明 Zimg图片服务器专用上传工具类

@author 高振中

@创建时间:2019年2月27日 下午4:07:03

*/

@Component

@Slf4j

public class ZimgUtils {

@Value("${xsrt.zimg.server}")

private String zimg_server;// Zimg图片服务器IP及端口

/**

@方法说明 上传文件

*/

public JSONObject upFile(MultipartFile file) {

try {

return this.upFile(file.getBytes());

} catch (IOException e) {

log.error("上传图片时出现异常:", e.getMessage());

return JSONObject.parseObject("{"ret":false,"info":"上传图片时出现异常"}");

}

}

public JSONObject upUrlImg(String url) {

return upFile(getFileBytes(url));

}

/**

@方法说明 上传文件

*/

public JSONObject upFile(byte[] bytes) {

try {

URL url = new URL(zimg_server + "upload");

URLConnection connection = url.openConnection();

HttpURLConnection conn = (HttpURLConnection) connection;

conn.setRequestMethod("POST");

conn.setRequestProperty("Connection", "Keep-Alive");

conn.setRequestProperty("Content-Type", extName(bytes));

conn.setDoOutput(true);

conn.setDoInput(true);

conn.connect();

conn.getOutputStream().write(bytes);

String res = new BufferedReader(new InputStreamReader(conn.getInputStream())).readLine();

conn.disconnect();

return JSONObject.parseObject(res);

} catch (Exception e) {

log.error("上传图片时出现异常:", e.getMessage());

return JSONObject.parseObject("{"ret":false,"info":"上传图片时出现异常"}");

}

}

/**

@方法说明 取扩展名

*/

private String extName(byte[] data) {

if (data[1] == 'P' && data[2] == 'N' && data[3] == 'G') {

return "png";

}

if (data[0] == 'G' && data[1] == 'I' && data[2] == 'F') {

return "gif";

}

if (data[6] == 'J' && data[7] == 'F' && data[8] == 'I' && data[9] == 'F') {

return "jpg";

}

return "jpg";

}

/**

@方法说明 从url读取文件流

*/

public byte[] getFileBytes(String imgUrl) {

ByteArrayOutputStream swapStream = null;

try {

URL imgurl = new URL(imgUrl);

URLConnection connection = imgurl.openConnection();

InputStream inStream = connection.getInputStream();

swapStream = new ByteArrayOutputStream();

byte[] buff = new byte[100];

int rc = 0;

while ((rc = inStream.read(buff, 0, 100)) > 0) {

swapStream.write(buff, 0, rc);

}

} catch (MalformedURLException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

return swapStream.toByteArray();

}

public static void main(String[] args) {

String res = "{"ret":true,"info":{"md5":"bee092fa4a73d82aa125c74f4a8ce96d","size":66468}}";

JSONObject json = JSONObject.parseObject(res);

System.out.println(json.getJSONObject("info").get("md5"));

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值