进入阿里云网站 https://cn.aliyun.com/,然后搜索学生机进入获取界面。


1.注意:如果不想做新手训练营可以直接点下一步,最后给个评分就行了。




创建安全组的主要是为了配置内网入方向,作用是配置外界可访问服务器的端口号(未配置的端口则不允许访问)。


下载xshell教程链接
1.注意主机是填写公网ip
2.阿里云服务器的默认用户名是root,密码是你写的哪个密码
如果还是连接不上,就重新登入服务器和重启一下xshell。
xshell远程连接服务器的教程
宝塔安装环境
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh



宝塔面板能够监控我们
上传图片并下载测试
在公司我们并没有权限进去oss里面进行上传和删除图片的权限,而是通过使用java代码来操作图片。
1.点击进入oss学习路径
2.点击查看oss的java模块
3.OSS项目的架构如下:
明明是1.8版本的jdk,但是只有以下配置才能成功。
<dependencies><dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.10.2</version></dependency></dependencies>
#服务端口 server.port=8002 #服务名 spring.application.name=service-oss#环境设置:dev、test、prod spring.profiles.active=dev#阿里云 OSS #不同的服务器,地址不同 aliyun.oss.file.endpoint=junjun11.oss-cn-beijing.aliyuncs.com aliyun.oss.file.keyid=LTAI5tP1a4rEqGXpPKm1xwfS aliyun.oss.file.keysecret=XKLO5M5fehSMCLt1fzsc3Rg2jzVKgF #bucket可以在控制台创建,也可以使用java代码创建 aliyun.oss.file.bucketname=junjun11
只要添加了阿里云oss,就会在服务器开启的时候自动查找数据库,查找失败就会报错启动失败,所以使用要添加exclude来不加载数据库或者进行连接数据库的配置
//会自动加载数据库,使用要添加这个配置不加载数据库或者添加数据库配置。@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)public class OssApplication {public static void main(String[] args) {SpringApplication.run(OssApplication.class,args);}}--------com/junjun/utils/ConstantPropertiesUtils.java
@Componentpublic class ConstantPropertiesUtils implements InitializingBean {//@Value能将内容传入到字段中去。而${}能将配置文件中的内容进行传值@Value("${aliyun.oss.file.endpoint}")private String endpoint;@Value("${aliyun.oss.file.keyid}")private String keyId;@Value("${aliyun.oss.file.keysecret}")private String keySecret;@Value("${aliyun.oss.file.bucketname}")private String bucketName;//定义常量public static String END_POIND;public static String ACCESS_KEY_ID;public static String ACCESS_KEY_SECRET;public static String BUCKET_NAME;//afterPropertiesSet()会在上面字段传值结束后自动调用@Overridepublic void afterPropertiesSet() throws Exception {END_POIND=endpoint;ACCESS_KEY_ID=keyId;ACCESS_KEY_SECRET=keySecret;BUCKET_NAME=bucketName;}}---------com/junjun/service/OssService.java
public interface OssService {//上传头像到ossString uploadFileAvatar(MultipartFile file);}-------------com/junjun/service/impl/OssServiceImpl.java
package com.junjun.service.impl;import com.aliyun.oss.OSS;import com.aliyun.oss.OSSClientBuilder;import com.junjun.service.OssService;import com.junjun.utils.ConstantPropertiesUtils;import org.springframework.stereotype.Service;import org.springframework.web.multipart.MultipartFile;import java.io.IOException;import java.io.InputStream;@Servicepublic class OssServiceImpl implements OssService {@Override//返回url地址!public String uploadFileAvatar(MultipartFile file) {//工具类传值。String endpoint = ConstantPropertiesUtils.END_POIND;//终端,如北京的终端:oss-cn-beijing.aliyuncs.comString bucketName = ConstantPropertiesUtils.BUCKET_NAME;//自己创建的Bucket的name,如:junjun11String accessKeyId = ConstantPropertiesUtils.ACCESS_KEY_ID;//在oss的Access Key Secret功能可以获得String accessKeySecret = ConstantPropertiesUtils.ACCESS_KEY_SECRET;//在oss的Access Key Secret功能可以获得String fileName=file.getOriginalFilename();//需要上传的文件名,如%E6%8A%80%E6%9C%AF%E6%94%AF%E6%8C%81.png// 创建OSSClient实例。OSS ossClient = null;// 填写本地文件的完整路径。如果未指定本地路径,则默认从示例程序所属项目对应本地路径中上传文件流。InputStream inputStream = null;try {ossClient=new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);//通过id和密码创建一个可以与OSS交互的OSSClientinputStream = file.getInputStream();//获取传入文件的输入流// 依次填写Bucket名称,和Object文件名称或完整路径(例如exampledir/exampleobject.txt)、上传的文件流。Object完整路径中不能包含Bucket名称。ossClient.putObject(bucketName, fileName, inputStream);//例如https://junjun11.oss-cn-beijing.aliyuncs.com/%E6%8A%80%E6%9C%AF%E6%94%AF%E6%8C%81.pngString url="https://"+bucketName+"."+endpoint+"/"+fileName;return url;} catch (IOException e) {e.printStackTrace();}finally {// 关闭OSSClient。ossClient.shutdown();}return null;}}-----------com/junjun/controller/OssController.java
@RestController@RequestMapping("/eduoss/fileoss")@CrossOrigin//跨域问题public class OssController {@AutowiredOssService service;HashMap<String,Object> map=new HashMap<String,Object>();@PostMapping("/upload")//上传头像(传入一个文件),R中保存上传文件的url地址public R uploadOssFile(MultipartFile file){String url = service.uploadFileAvatar(file);//成功上传头像并且返回上传后的所在url地址map.put("url",url);return R.ok().setData(map);}}1.如果上传同一个名称的文件,将会将上一个覆盖:使用uuid来生成随机数
2.文件太杂,我们要实现按日期分文件夹保存的效果。
-------com/junjun/service/impl/OssServiceImpl.java
@Servicepublic class OssServiceImpl implements OssService {@Override//返回url地址!public String uploadFileAvatar(MultipartFile file) {//工具类传值。String endpoint = ConstantPropertiesUtils.END_POIND;//终端,如北京的终端:oss-cn-beijing.aliyuncs.comString bucketName = ConstantPropertiesUtils.BUCKET_NAME;//自己创建的Bucket的name,如:junjun11String accessKeyId = ConstantPropertiesUtils.ACCESS_KEY_ID;//在oss的Access Key Secret功能可以获得String accessKeySecret = ConstantPropertiesUtils.ACCESS_KEY_SECRET;//在oss的Access Key Secret功能可以获得String fileName=file.getOriginalFilename();//需要上传的文件名,如%E6%8A%80%E6%9C%AF%E6%94%AF%E6%8C%81.png//***********************1.生成随机的uuid***********************String uuid= UUID.randomUUID().toString().replaceAll("-","");//把aw2d-dfgj-432l中间的-去掉// 创建OSSClient实例。OSS ossClient = null;// 填写本地文件的完整路径。如果未指定本地路径,则默认从示例程序所属项目对应本地路径中上传文件流。InputStream inputStream = null;try {ossClient=new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);//通过id和密码创建一个可以与OSS交互的OSSClientinputStream = file.getInputStream();//获取传入文件的输入流//****************2.把文件按日期进行分类***********************SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy/MM/dd");//确认格式.在oss中所有的xx/都会变成一个文件夹String date = dateFormat.format(new Date());//得到该格式的当前时间;2021/10/20//****************3.最终确定filename***********************String FinalFileName=date+"/"+uuid+fileName;// 依次填写Bucket名称,和Object文件名称或完整路径(例如exampledir/exampleobject.txt)、上传的文件流。Object完整路径中不能包含Bucket名称。ossClient.putObject(bucketName, FinalFileName, inputStream);//例如https://junjun11.oss-cn-beijing.aliyuncs.com/%E6%8A%80%E6%9C%AF%E6%94%AF%E6%8C%81.pngString url="https://"+bucketName+"."+endpoint+"/"+FinalFileName;return url;} catch (IOException e) {e.printStackTrace();}finally {// 关闭OSSClient。ossClient.shutdown();}return null;}}【效果展示】:
服务器购买/咨询热线:15637009171或15617636856
本文链接:http://www.sqxnmj.com/jishuzhichiyuweihu/441.html