本地存储
以图片上传为例,本地存储是把用户上传的文件传递到后端,后端程序把文件转存到本地固定位置,并把路径放回,前端进行访问,就可以显示。但这种方式不适合多人协同,而且占用空间等。
此段代码base是个固定字段“E:/image/”,为了每次上传的文件不会因为同名而发生覆盖采用uui的生成唯一的序列号。L字段是保留文件的格式例如:.jpg等,然后把完整的地址返回。
云端存储
云端存储是把文件存放到例如阿里云,腾讯云等,这里以阿里云为例。首先你需要注册阿里云,
然后开启OSS对象存储服务。
之后要创建一个bucket列表,这个类似于文件分类一样,相当于一个文件夹。之后需要查看自己的accesskey id和accesskey secret这个不要泄露给别人。你需要记下你的backet 的endpoint以华北2(北京)为例,endpoihttps://oss-cn-beijing.aliyuncs.com。
之后需要导入对应的SDK。阿里云的SDK是指阿里云(Alibaba Cloud)为开发者提供的一组软件开发工具包,旨在简化与阿里云云服务的集成和交互。这些SDK提供了对阿里云各种云产品和服务的API调用封装,开发者可以通过使用SDK来访问和管理阿里云的云资源。以使用maven为例,导入对应的依赖
这是官方提供的,如果jdk版本1.8只需要导入第一个依赖,如果是1.8以上则需要导入这三个依赖。在程序中做的是创建Aliyunoss类。对应的endpont等填写自己的内容。我是存放在配置文件中
阿里云回返回对应有一定规范的url(https//mytrynews.oss-cn-beijing.aliyuncs.com/+文件名
)这里文件名也要用uuid做唯一辨识,因为不同用户上传的文件名字可能重复,这个url可以直接访问并下载图片。在service层只需要调用这个类中的upload方法,之后把返回的url可以存放在数据库中,查询信息时直接可以根据url把图片显示。