社区
Web 开发
帖子详情
请教,一年有10万张学生照片(每张10K以内),是放服务器目录还是数据库里边?
salecn
2018-09-09 10:23:20
背景:做一套云端的管理系统,一年有10万张学生照片(每张10K以内),这照片应该是放在数据里边还是服务器目录里边? 放数据库里边影响速度读取麻烦,放服务器目录里边很容易被下载泄漏。
问题:请教前辈,你们一般是怎样做的啊?(如果放服务器目录里边,把照片文件名用一个16位的随机ID,可以防止下载吗?)
...全文
964
17
打赏
收藏
请教,一年有10万张学生照片(每张10K以内),是放服务器目录还是数据库里边?
背景:做一套云端的管理系统,一年有10万张学生照片(每张10K以内),这照片应该是放在数据里边还是服务器目录里边? 放数据库里边影响速度读取麻烦,放服务器目录里边很容易被下载泄漏。 问题:请教前辈,你们一般是怎样做的啊?(如果放服务器目录里边,把照片文件名用一个16位的随机ID,可以防止下载吗?)
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Ruoch
2018-09-15
打赏
举报
回复
服务器里面 常用方式
qq_37108946
2018-09-12
打赏
举报
回复
放在阿里云的oss里面吧
tianfang
2018-09-12
打赏
举报
回复
一定是文件服务器上 使用hash算法(如:md5 sha256 , uuid也可以)生成新的文件名。文件系统的目录有最大文件数(不是很老的文件系统几乎到不了),可以按文件名前/后几个字符创建子目录 数据库存储文件的相对路径
wrqlgd
2018-09-12
打赏
举报
回复
我们是放到一个不可直接访问的目录,使用特定的数据接口验证权限后由后端输出流数据。效率可能没有nginx加lua高
Howe~zZ
2018-09-12
打赏
举报
回复
建议放服务器目录中,表里面只需要存入图片相关名称,和大小还有路径就可以
大葡萄八块一斤
2018-09-11
打赏
举报
回复
文件字节里加些东西,不能成为真正的图片文件,只有你自己展示的时候处理了才能现实就可以了,放数据库里还是算了吧,你会发现存在硬盘容量里比数据表空间里占用量小
liulilittle
2018-09-11
打赏
举报
回复
做分布式的文件系统,单纯的依靠系统I/O后面随着文件或目录的数量逐渐增大访问的效率就会越来越慢, 关系型数据库进行存储的话定期的分表分区的话整体会好很多,但是基数上去了查询效率自然而言会降低, 此时就需要考虑一些更好的优化手段,同时介于现在的数据库访问适配器的设定【非异步】读取行为,那 么不太适合读取很大尺寸的文件,对服务器内存会有较大的影响,当然你可以尝试找到异步的客户端。 ------------------------- 一般的小型系统的情况文件系统I/O并非不可满足,数据库提供的效能是好很多但是带来的负面影响也足够 强烈,取决于具体的场景与业务设计目标,但,相对于的“分布式的文件服务器“相对于上面几类,显然会 是一个很不错的选择。
nayi_224
2018-09-11
打赏
举报
回复
我试过把照片存数据库,很蛋疼。
必须要把照片单独放在一张表中,否则效率会非常差。但是在一些特殊的业务下,这种表结构又会使逻辑变得很混乱。而且全量提取数据的时候也很麻烦。当然好处也是有的,很微不足道的好处。
zbdzjx
2018-09-11
打赏
举报
回复
建议放在目录中,文件名用uuid。
10万*10K=1G,放在数据库中也还好了,但表结构要设计好,不然会影响速度。
游北亮
2018-09-11
打赏
举报
回复
数据库存储数据, 文件系统存储文件, 让数据库做擅长的数据存储,让文件系统做擅长的文件存储吧! btw:大量的小文件考虑上云吧,不管是aws还是阿里的oss
不易易
2018-09-11
打赏
举报
回复
还是放在服务器目录吧,uuid。
xia_xd
2018-09-11
打赏
举报
回复
建议用数据库,小文件数和目录数越多,越来越慢。
闭包客
2018-09-11
打赏
举报
回复
这是很常见的需求,一般来说,放服务器里面,加上权限认证就行了。
xigua1102
2018-09-10
打赏
举报
回复
数据库放路径,目录放实际图片,这个是一般采用的办法
图片id用uuid试试,或者给图片增加一些权限限制吧
RockeyCui
2018-09-10
打赏
举报
回复
阿里云oss或者自己搭建文件服务器,至于安全问题,图片id都是随机生成的 不是连号应该没问题
Dan淡淡的心
2018-09-10
打赏
举报
回复
建议服务器目录 图片资源可以放在web-info下 只有本机可以访问
只想牵着伱的手
2018-09-09
打赏
举报
回复
建议服务器目录吧,防止下载可以做签名验证 , 图片输出到前端时 在url中加签名参数。访问图片地址时可以用 nginx + lua 签名验证 。
Linux C++网络编程
这是一门linux下c++通讯架构实战课程,针对c/c++语言已经掌握的很熟并希望进一步深造以将来用c++在linux下从事网络通讯领域/网络
服务器
的开发和架构工作。这门课程学习难度颇高但也有着极其优渥的薪水(最少30K月薪,最高可达60-80K月薪),这门课程,会先从nginx源码的分析和讲解开始,逐步开始书写属于自己的高性能
服务器
框架代码,完善个人代码库,这些,将会是您日后能取得高薪的重要筹码。本课程原计划带着大家逐行写代码,但因为代码实在过于复杂和精细,带着写代码可能会造成每节课至少要4~5小时的超长时间,所以老师会在课前先写好代码,主要的时间花费在逐行讲解这些代码上,这一点望同学们周知。如果你觉得非要老师领着写代码才行的话,老师会觉得你当前可能学习本门课程会比较吃力,请不要购买本课程,以免听不懂课程并给老师差评,差评也会非常影响老师课程的销售并造成其他同学的误解。 这门课程要求您具备下面的技能:(1)对c/c++语言掌握的非常熟练,语言本身已经不是继续学习的障碍,并不要求您一定熟悉网络或者linux;(2)对网络通讯架构领域有兴趣、勇于挑战这个高难度的开发领域并期望用大量的付出换取高薪;在这门课程中,实现了一个完整的项目,其中包括通讯框架和业务逻辑框架,浓缩总结起来包括如下几点:(1)项目本身是一个极完整的多线程高并发的
服务器
程序;(2)按照包头包体格式正确的接收客户端发送过来的数据包, 完美解决收包时的数据粘包问题;(3)根据收到的包的不同来执行不同的业务处理逻辑;(4)把业务处理产生的结果数据包正确返回给客户端;本项目用到的主要开发技术和特色包括:(1)epoll高并发通讯技术,用到的触发模式是epoll中的水平触发模式【LT】;(2)自己写了一套线程池来处理业务逻辑,调用适当的业务逻辑处理函数处理业务并返回给客户端处理结果;(3)线程之间的同步技术包括互斥量,信号量等等;(4)连接池中连接的延迟回收技术,这是整个项目中的精华技术,极大程度上消除诸多导致
服务器
程序工作不稳定的因素;(5)专门处理数据发送的一整套数据发送逻辑以及对应的发送线程;(6)其他次要技术,包括信号、日志打印、fork()子进程、守护进程等等;
实践:
服务器
编写/系统架构/cache
从基本HTTP协议,
服务器
编写(只讲思路),到完整系统搭建(包括负载均衡LVS,...如果能灵活应用这些方法,你也许会发现对于某些网站来说节约
10
倍成本,其实是个很保守的说法。 一、
服务器
编写篇二、系统架构篇三、
[转][小说]我是一名黑客
当时转的一个台,正好在
放
一个电视连续剧,而且正好
放
到一个人请一个黑客来进入人家的财务系统,窃取资料。当时那个黑客来了,很自信的样子,一看就知道,他肯定在几分钟内就能攻入人家系统的那种感觉。若然不出所料...
饿了么交易系统 5 年演化史
那是一个晚上,大概 8 点多,现在回想,当时灰度和观察时间是有一些短的,当我全部发布完成后,很快,监控上显著看到接口开始严重超时(我们当时采用框架默认的超时设定, 30s,其实这个配置很严重),进而产生了大量...
我是一个黑客
当时转的一个台,正好在
放
一个电视连续剧,而且正好
放
到一个人请一个黑客来进入人家的财务系统,窃取资料。当时那个黑客来了,很自信的样子,一看就知道,他肯定在几分钟内就能攻入人家系统的那种感觉。若然不出所料...
Web 开发
81,092
社区成员
341,716
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章