图片服务器Zimg

图片服务器Zimg若一个项目中图片的资源较多 都会有专门的图片服务器来存储图片 可以去观察一些大的网站上图片的链接都是有专门的服务器 这样可以很好地提高性能 图片服务器解决方案很多 通过花钱的云厂商提供的存储服务 vsftp FastDFS 等 这里介绍一个开源项目 zimg zimg 是图像存储和处理服务器 您可以使用 URL 参数从 zimg 获得压缩和缩放的图像 zimg 的并发 I O 分布式存储和及时处理能

若一个项目中图片的资源较多,都会有专门的图片服务器来存储图片,可以去观察一些大的网站上图片的链接都是有专门的服务器,这样可以很好地提高性能。图片服务器解决方案很多,通过花钱的云厂商提供的存储服务、vsftp、FastDFS等,这里介绍一个开源项目——zimg。

  • zimg是图像存储和处理服务器。您可以使用URL参数从zimg获得压缩和缩放的图像
  • zimg的并发I / O,分布式存储和及时处理能力非常出色。您不再需要在图像服务器中使用nginx。在基准测试中,zimg可以在高并发级别上每秒处理3000个以上的图像下载任务和每秒90000个以上的HTTP回显请求。性能高于PHP或其他图像处理服务器。
  • 用于中小型的图床服务
  • 官网地址:http://zimg.buaa.us

1 、安装

# 拉取zimg镜像 $ docker pull iknow0612/zimg # 启动zimg容器 $ docker run -it -d -p 4869:4869 -v /data/zimg/:/zimg/bin/img --name my_zimg iknow0612/zimg sh app.sh 

说明:

  • 若是在前端浏览器页面直接上传,那么返回结果是html格式
  • 若是通过发起post请求则是返回json格式
    {“ret”:true,“info”:{“md5”:“5f189d8ec57f5a5a0d3dcba47fa797e2”,“size”:29615}}

2、zimg简单说明

$ docker exec -ti zimg容器id /bin/bash 

在这里插入图片描述

  • conf:配置文件
  • img:图片存放目录
  • log:日志
  • script:脚本文件
  • www:两个html页面文件

3. zimg与java

基本的示例,发起post请求,将图片的字节数据写入六中即可。

@Test public void test() throws IOException { 
    URL url = new URL("http://192.168.175.130:4869/update"); File file = new File("C:\\Users\\lr\\Desktop\\t.png"); String name = file.getName(); String fileType = name.substring(name.lastIndexOf(".") + 1); HttpURLConnection connection = null; InputStream response = null; try { 
    connection = (HttpURLConnection) url.openConnection(); connection.setConnectTimeout(10000); connection.setReadTimeout(10000); // 设置上传图片的类型,否则报错 connection.setRequestProperty("content-type", fileType); connection.setRequestMethod("POST"); connection.setDoOutput(true); connection.connect(); OutputStream out = connection.getOutputStream(); out.write(getFileBytes(file)); response = connection.getInputStream(); int len = -1; String ret = ""; byte[] b = new byte[100]; while ((len = response.read(b)) != -1) { 
    ret += new String(b,0,len); } System.out.println(ret); } catch (MalformedURLException e) { 
    e.printStackTrace(); } catch (IOException e) { 
    e.printStackTrace(); } finally { 
    if (response != null) try { 
    response.close(); } catch (IOException e) { 
    e.printStackTrace(); } if (connection != null) { 
    connection.disconnect(); connection = null; } } } private byte[] getFileBytes(File file) { 
    FileInputStream in = null; ByteArrayOutputStream bos = null; try { 
    in = new FileInputStream(file); bos = new ByteArrayOutputStream(); int len = -1; byte[] b = new byte[1024]; while((len = in.read(b)) != -1) { 
    bos.write(b, 0, len); } return bos.toByteArray(); } catch (FileNotFoundException e) { 
    e.printStackTrace(); } catch (IOException e) { 
    e.printStackTrace(); }finally { 
    if(in !=null) { 
    try { 
    in.close(); } catch (IOException e) { 
    e.printStackTrace(); } } if(bos != null) { 
    try { 
    bos.close(); } catch (IOException e) { 
    e.printStackTrace(); } } } return null; } 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/214505.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午4:06
下一篇 2026年3月18日 下午4:06


相关推荐

  • idea 2022.01.4 mac激活码(JetBrains全家桶)2022.02.23

    (idea 2022.01.4 mac激活码)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.htmlHCIQ56F36O-eyJsaWN…

    2022年4月1日
    187
  • 爬虫入门经典(五) | 简单一文教你如何爬取高德地图

    爬虫入门经典(五) | 简单一文教你如何爬取高德地图  大家好,我是不温卜火,是一名计算机学院大数据专业大三的学生,昵称来源于成语—不温不火,本意是希望自己性情温和。作为一名互联网行业的小白,博主写博客一方面是为了记录自己的学习过程,另一方面是总结自己所犯的错误希望能够帮助到很多和自己一样处于起步阶段的萌新。但由于水平有限,博客中难免会有一些错误出现,有纰漏之处恳请各位大佬不吝赐教!暂时只在csdn这一个平台进行更新,博客主页:https://buwenbuhuo.blog.csdn.net/。PS:由于现在越来越多的人未经本人同意直接爬取博主本人.

    2022年7月25日
    17
  • 网线线序及网线转RS232—— DB9线序

    网线线序及网线转RS232—— DB9线序网线制作有两种标准 568A 和 568B 网线两端都是同一标准即平行线 用于连接不同类型设备 例如 交换机和计算机之间的连接 两端是不同标准即交叉线 用于连接同类型设备 例如 两台计算机之间 568A 线序 绿白绿橙白蓝蓝白橙棕白棕 568B 线序 橙白橙绿白蓝蓝白绿棕白棕 即把 568A 的 1 和 3 2 和 6 对调即可

    2026年3月26日
    2
  • Windows 环境部署 ChatGLM2-6b 入门教程

    Windows 环境部署 ChatGLM2-6b 入门教程

    2026年3月12日
    2
  • 本草纲目pdf彩图版下载_本草纲目下载|本草纲目彩色图集精编珍藏版下载pdf高清版_最火软件站…

    本草纲目pdf彩图版下载_本草纲目下载|本草纲目彩色图集精编珍藏版下载pdf高清版_最火软件站…本草纲目是由我国明朝著名的医学家李时珍编写的一部中医典著,即使到了当代,这部著作也为中医学者们提供了非常重要的参考和学习方向,本次为大家提供本草纲目彩色图集精编珍藏版,而且是pdf高清版,让你可以在电脑上进行参考阅读本草纲目,欢迎有需要的朋友前来下载。内容简介《本草纲目》是我国古代医学宝库中珍贵的科学遗产,它是由我国历史上杰出的医药学家李时珍花费毕生精力所著。它以精深的学术和丰富的内涵,赢得了国内…

    2022年7月15日
    44
  • PropertyDescriptor属性描述类学习

    PropertyDescriptor属性描述类学习1构造方法通过调用getFoo和setFoo存取方法,为符合标准Java约定的属性构造一个PropertyDescriptor publicPropertyDescriptor(StringpropertyName, Class<?>beanClass) 该构造函数使用简单属性的名称,以及读取和写入属性的方法名称publicPropertyDes…

    2026年4月17日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号