就是我在linux上用vsftp搭建了一个文件服务器,我的java项目是前后端不分离的,但是一些图片和视频都是放在linux上的,怎么才能获取linux上的资源在前端展示呢?我目前的解决办法是前端的标签中写后端的接口路径,请求后端,通过项目后端使用FTPClient获取linux上的文件,然后以数据流的形式返回给前端展示,各位有没有别的什么办法呢?期待大家的解答。
存文件的话,使用OSS(即Object Storage Service)是一种提供海量、安全、低成本、高可靠的云存储服务,适合存放任意类型的文件。 会好些吧。
直接从 OSS 拿文件,还可以做 鉴权、防伪 啥的。
文件 得有 ID,根据ID 去拿文件。
另一种方式,是后端开放静态文件夹,将其映射到服务器的某个文件夹中,
前端访问只要拼静态文件夹的地址就好了,
您好,我是菜鸟,能具体说一下怎么做吗,还有就是我那个做法可行吗?
@小杨也叫糖儿: 你的做法也可行,就是会复杂点,
springboot 静态资源文件夹
https://baijiahao.baidu.com/s?id=1714648805487835159&wfr=spider&for=pc
简单点的做法,使用Nginx开启一下静态目录就可以啦~
安装Nginx,配置ip和端口,然后参照下面开启目录,启动Nginx,然后访问。
参考下面:
https://www.cnblogs.com/siqi/archive/2012/10/07/2713732.html
这几个属性应该就够用了,更多的功能可以详细去了解一下Nginx的配置
autoindex on;//自动显示目录
autoindex_exact_size off;//人性化方式显示文件大小否则以byte显示
autoindex_localtime on;//按服务器时间显示,否则以gmt时间显示
我学了下nginx,然后得到一种解决方案就是通过nginx配置动静分离,就是映射一下在linux上的文件路径。
文件服务器不用自己搭建
用云服务啊
您可以考虑使用HTTP或HTTPS协议来传输文件资源。具体而言,您可以在服务器上搭建一个Web服务器,然后将您要传输的文件放到Web服务器的目录下。然后在前端中使用img或video等标签指向该Web服务器上的资源路径,浏览器会自动从服务器上获取资源并展示。
您可以使用常见的Web服务器软件如Apache、Nginx等。如果您的项目是Java项目,您可以考虑使用Java Servlet容器如Tomcat、Jetty等来部署Web服务器。
如果您的文件资源需要进行权限控制,您可以考虑使用JSON Web Token(JWT)来实现身份验证和授权。具体而言,您可以在前端中向后端请求一个JWT,然后在后续的请求中带上该JWT作为身份验证和授权的凭证。后端可以在验证JWT的同时判断用户是否有权限访问该资源。
总之,使用HTTP或HTTPS协议传输文件资源是一种常见的做法,相对于使用FTP协议,更加简单方便。
可以把静态资源放到linux的tomcat里面是吧?
@小杨也叫糖儿: 是的,可以把静态资源放到Linux的Tomcat里面。Tomcat是一个Java Web服务器,可以托管Web应用程序并提供Java Servlet和JavaServer Pages(JSP)等技术支持,同时也可以作为Web服务器提供静态文件服务。在Tomcat中,可以通过配置web.xml或在应用程序中使用Java Servlet或JSP来定义和访问静态资源,例如HTML、CSS、JavaScript、图像和其他文件。
将静态资源放到Tomcat中的好处之一是可以在一个地方管理和部署Web应用程序和静态资源。此外,Tomcat还提供了一些性能优化技术,如HTTP压缩和缓存控制,可以加速静态资源的传输和处理。
@Technologyforgood: 好的,感谢,我现在的解决办法是使用nginx做一个linux的资源路径映射,就是用nginx配置一下动静分离。