图片服务器是什么?常见的图片服务器是哪几种?图片服务器的要求是什么?

news2024/9/23 17:20:52

什么是图片服务器

图片服务器,顾名思义就是专门用于处理图片的服务器,向外提供图片的上传,下载,图片展示等服务

为什么我们要使用专门的服务器处理图片

  1. 图片的数据量比文字展示高得多,图片的上传下载展示一系列操作都是要加载的内存中去,图片还需要存储在硬盘中,如果怕不与主服务器分离,会给主服务器造成非常大内存压力和存储压力
  2. 图片服务是一种很常见的服务,许多模块的服务中都需要用到图片,将图片服务部署到单独的服务器上,可以让图片服务与某一个服务解耦,被所有我们开发的服务共享
  3. 图片服务器使用独立的域名,可以让CDN分流加速的效果更加显著,降低用户访问图片的延迟

常见的图片服务器

云服务厂商提供的图片服务器

阿里云oss、腾讯云cos、华为云obs,功能大同小异,我们以最完善,使用最多的阿里云oss为例

阿里云的oss对象存储

阿里云OSS官网介绍

阿里云的OSS是目前使用广泛的一种服务,不仅可以用来存储图片,视频,音频,日志等都可以存储(半结构化和全结构化的数据)

特点
  1. 可靠性和可用性高(几乎不会出现无法下载,无法上传,无法查看,文件损坏的问题)
    在这里插入图片描述
    数据迁移方便,api接口文档完善,方便二次开发

  2. 存储类型多样化,生命周期管理机制优秀
    在这里插入图片描述
    在这里插入图片描述

  3. 自动删除无用的图片,或者自动转换为低成本的存储类型

  4. 支持分片上传等多种上传方式在这里插入图片描述
    剩下的还有包括冗余存储,跨区域传送文件,数据加密,历史版本控制(防止误删)等优良特点

可以这么说,阿里云OSS几乎是一个图片服务器的终极形态,满足了大部分图片服务器的需求

在这里插入图片描述

只有一个缺点:贵(按照流量计费,自动扣款)

什么是对象存储OSS

开源的图片服务器

FastDFS

fastDFS的github官网

fastDFS的java客户端
分别有8.9k和1.6k的星星
在这里插入图片描述

我们可以看到,fastDFS为了极致的性能,基本使用C语言完成

中文简介:

FastDFS是一个开源的高性能分布式文件系统。它的主要 功能包括:文件存储、文件同步和文件访问(文件上传 和文件下载),它可以解决高容量和负载均衡问题 问题。FastDFS应满足其服务的网站的要求 在照片共享网站和视频共享网站等文件上。
FastDFS 有两个角色:跟踪器和存储。跟踪器负责 文件访问的计划和负载平衡。存储存储文件,它是 功能是文件管理,包括:文件存储、文件同步、提供文件 访问接口。它还管理元数据,这些元数据是表示的属性 作为文件的键值对。例如:width=1024,键为“width”且 值为“1024”。
跟踪器和存储包含一个或多个服务器。跟踪器中的服务器 或者,可以随时将存储集群添加到集群中或从集群中删除,而无需 影响在线服务。跟踪器群集中的服务器是点对点的。
按文件卷/组组织的存储服务器,以获得高容量。 存储系统包含一个或多个卷,其文件在 这些卷。整个存储系统的容量等于所有存储系统的总和 卷的容量。一个文件卷包含一个或多个存储服务器,其文件 在这些服务器中是相同的。文件卷中的服务器相互备份, 所有这些服务器都是负载平衡的。将存储服务器添加到 卷,此卷中已存在的文件将复制到此新服务器 自动,当此复制完成时,系统将切换此服务器 在线提供存储服务。
当整个存储容量不足时,可以添加一个或多个 卷以扩展存储容量。为此,您需要添加一个或 更多存储服务器。
文件的标识由两部分组成:卷名和 文件名。
客户端测试代码使用客户端库请参考目录:client/test。
更多FastDFS相关文章,请订阅微信/微信公众号 (中文):fastdfs
FastDFS是一种轻量级的对象存储解决方案。如果你需要一个普通的分布式 数据库、K8s和虚拟机(如KVM)的文件系统,你可以了解实现强数据一致性的FastCFS 和高性能。

图片服务器面临的三大问题:
大流量,高并发,海量存储

fastDFS是分布式系统,并且做了负载均衡,天然就可以解决这三大问题

不过fastDFS不会对文件进行分块处理,所以只适用于一些小型的文管理,比如图片,小音频和小视频

在这里插入图片描述

图片服务器的要求

功能要求:图片上传,图片下载,图片访问
速度要求:不能加载过慢,所以可以使用分片上传机制
安全要求:隐私图片传输过程加密,用户上传病毒文件校验等
并发和存储要求:图片不能太大,图片上传并发不能太高,否则会OOM(负载均衡等)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1929839.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux进程——进程优先级与僵尸进程孤儿进程

文章目录 僵尸进程变成僵尸状态的过程 孤儿进程进程优先级如何修改进程优先级为什么优先级有范围 僵尸进程 僵尸状态进程本质上就是死亡状态 在进程死亡之后,不会直接对进程进行释放,而是先会处理一些后事 进程在结束退出的时候,也会有一些…

介绍 Elasticsearch 中的 Learning to Tank - 学习排名

作者:来自 Elastic Aurlien Foucret 从 Elasticsearch 8.13 开始,我们提供了原生集成到 Elasticsearch 中的学习排名 (learning to rank - LTR) 实现。LTR 使用经过训练的机器学习 (ML) 模型为你的搜索引擎构建排名功能。通常,该模型用作第二…

CSA笔记1-基础知识和目录管理命令

[litonglocalhost ~]$ 是终端提示符,类似于Windows下的cmd的命令行 litong 当前系统登录的用户名 分隔符 localhost 当前机器名称,本地主机 ~ 当前用户的家目录 $ 表示当前用户为普通用户若为#则表示当前用户为超级管理员 su root 切换root权限…

我利用ChatGPT开发了一个网盘资源搜索神器APP

首先声明,本文不是买东西,仅分享个人利用ChatGPT开发项目的个人经验分享。 之前已经开发完Web端网盘资源搜索引擎,而在安卓平台使用浏览器访问总是有点不方便,于是考虑开发一个安卓端APP。 可是,自己并没有开发APP经验,那怎么办? 都说AI可以帮你搞定一切,那就用一用…

python项目读取oracle数据库方法(cx_Oracle库实现)

目录 创建一个python项目,并配置运行环境 查看oracle对应数据库版本(该标题下内容只是为了查看版本,不用在意) 从oracle官网下载对应版本的oracle客户端 解压下载的压缩包,并获取依赖 将依赖文件导入python项目运…

Perl之正则表达式

正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。   Perl语言的正则表达式功能非常强大,基本上是常用语言中最强大的,很多语言…

论 Suspense 组件在 Vue 3 中的重要性

大家好,我是CodeQi! 一位热衷于技术分享的码仔。 你是否曾经遇到过在加载大量数据时,界面卡顿或是空白的问题? 如果你正在开发一个复杂的前端项目,那么一定需要处理很多异步数据请求。而异步请求太多就会导致用户看到空白屏幕时间变长,这对用户体验非常不友好。🤔 在…

【C++】C++11的新特性 --- 列表初始化,auto关键字,decltype关键字

人的理想与成就之间有一段距离 只有靠他的热情才能跨越。 -- 纪伯伦 C11特性 1 C 11介绍2 列表初始化3 声明3.1 auto关键字3.2 decltype关键字3.3 nullptr3.4 总结 4 STL中的新容器4.1 array4.2 forward_list4.3 unordered系列 Thanks♪(・ω・)&#x…

springboot项目 导入 maven坐标 错误 Could not transfer artifact XXX

1.报错原因 当时导入的是 redis坐标 ,导入jar 包报错(当时是网速太慢了,一直卡着不动 就关了 idea 重新下载)结果报错 之前的redis 项目都可以的,网上找了一下 都没解决 2.解决办法 既然说不能传输, 就说…

玩转HarmonyOS NEXT之AppStorage应用全局UI状态存储

概述 AppStorage是应用全局的UI状态存储,是和应用的进程绑定的,由UI框架在应用程序启动时创建,为应用程序UI状态属性提供中央存储。 AppStorage是在应用启动的时候会被创建的单例。它的目的是为了提供应用状态数据的中心存储,这…

【Pytorch】数据集的加载和处理(一)

Pytorch torchvision 包提供了很多常用数据集 数据按照用途一般分为三组:训练(train)、验证(validation)和测试(test)。使用训练数据集来训练模型,使用验证数据集跟踪模型在训练期间…

Andriod Stdio新建Kotlin的Jetpack Compose简单项目

1.选择 No Activity 2.选择kotlin 4.右键选择 在目录MyApplication下 New->Compose->Empty Project 出现下面的画面 Finish 完成

SpringAI简单使用

Ollama 简介 Ollama是一个开源的大型语言模型服务工具,它允许用户在本地机器上构建和运行语言模型,提供了一个简单易用的API来创建、运行和管理模型,同时还提供了丰富的预构建模型库,这些模型可以轻松地应用在多种应用场景中。O…

数据库第6次作业

内容 1、创建视图v_emp_dept_id_1,查询销售部门的员工姓名和家庭住址 2、创建视图v_emp_dept,查询销售部门员工姓名和家庭住址及部门名称。 3、创建视图v_dept_emp_count(dept_name,emp_count,avg_salay),统计每个部门人数并计算平均工资。 …

【漏洞复现】泛微e-cology9 WorkflowServiceXml SQL注入漏洞

文章目录 前言漏洞描述影响范围 漏洞复现nuclei脚本 安全修复 前言 泛微协同管理应用平台e-cology是一套兼具企业信息门户、知识文档管理、工作流程管理、人力资源管理、客户关系管理、项目管理、财务管理、资产管理、供应链管理、数据中心功能的企业大型协同管理平台。 漏洞…

03MFC画笔/画刷/画椭圆/圆/(延时)文字

文章目录 画实心矩形自定义画布设计及使用连续画线及自定义定义变量扇形画椭圆/圆输出颜色文本定时器与定时事件画实心矩形 自定义画布设计及使用 连续画线及自定义定义变量 扇形 画椭圆/圆 输出颜色文本

【应急响应】Windows应急响应手册(准备阶段、挖矿病毒)

文章目录 前言一、事前准备操作系统基本配置工具准备 二、挖矿病毒确定IOC信息获取异常进程的pid寻找恶意样本确定进程启动时间处理异常进程 前言 本篇文章主要以WIndows系统为例围绕红蓝对抗和攻防角度实施应急响应的技术手段,以多方面、多维度进行展开&#xff0…

HCNA ICMP:因特网控制消息协议

ICMP:因特网控制消息协议 前言 Internet控制报文协议ICMP是网络层的一个重要协议。ICMP协议用来在网络设备间传递各种差错和控制信息,他对于手机各种网络信息、诊断和排除各种网络故障有至关重要的作用。使用基于ICMP的应用时,需要对ICMP的工…

网工内推 | 云计算,网络安全工程师,13薪,发展空间广阔

01 上海飞络信息科技有限公司 🔷招聘岗位:网络安全工程师 🔷岗位职责: 1. 熟悉各品牌路由器、交换机、防火墙的配置与方案(主要为:思科、华为、Fortigate、PA等); 2. 网络配置设定&…

java并发编程的艺术1

1.上下文交换 减少上下文交换的方法 无锁并发编程:进行数据操作,多线程竞争锁,引起上下文切换。将变量按照id 进行hash,不同线程处理不同段的数据 CAS(compare and swap) A线程和B线程都要修改变量X&…