云服务
通过互联网对外提供的各类型的服务,比如:语音、短信、邮件、视频直播、对象存储
当在项目开发中需要某些服务时,就无需自己开发了,可以直接使用别人提供好的、现成的云服务即可;这样就降低了开发难度、提升了效率
阿里云对象存储OSS
使用对象存储服务之后,当项目中再次涉及上传等业务,就无需在服务器本地磁盘中存储文件了,直接将收到的文件上传到OSS,
由OSS帮助进行存储和管理,同时OSS存储服务还口语保证存储内容的安全性
过程:前端上传文件到服务端,服务端及那个文件上传到OSS进行存储
快速使用示例
package com.wzb.OSS20241008;import com.aliyun.oss.ClientException;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.OSSException;
import com.aliyun.oss.common.auth.CredentialsProviderFactory;
import com.aliyun.oss.common.auth.EnvironmentVariableCredentialsProvider;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import com.wzb.pojo20241008.Result;
import org.springframework.web.bind.annotation.PostMapping;@RestController
public class OSSController {// 使用阿里云对象存储OSS的步骤:// 1.创建bucket// 2.获取AccessKey(密钥)// 3.引入相关依赖// 4.案例集成OSS// Bucket:存储空间是用户用于存储对象(Object,也就是文件)的容器,所有的对象都必须隶属于某个存储空间@PostMapping("/OSSupload")public Result OSSUpload(String userName, Integer age, MultipartFile image) throws com.aliyuncs.exceptions.ClientException {// Endpoint以华东1(杭州)为例,其它Region请按实际情况填写。String endpoint = "https://oss-cn-chengdu.aliyuncs.com";// 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();// 填写Bucket名称,例如examplebucket。String bucketName = "wzb-study";// 创建OSSClient实例。OSS ossClient = new OSSClientBuilder().build(endpoint,credentialsProvider.getCredentials().getAccessKeyId(),credentialsProvider.getCredentials().getSecretAccessKey());try {// 创建存储空间。ossClient.createBucket(bucketName);} catch (OSSException oe) {System.out.println("Caught an OSSException, which means your request made it to OSS, "+ "but was rejected with an error response for some reason.");System.out.println("Error Message:" + oe.getErrorMessage());System.out.println("Error Code:" + oe.getErrorCode());System.out.println("Request ID:" + oe.getRequestId());System.out.println("Host ID:" + oe.getHostId());} catch (ClientException ce) {System.out.println("Caught an ClientException, which means the client encountered "+ "a serious internal problem while trying to communicate with OSS, "+ "such as not being able to access the network.");System.out.println("Error Message:" + ce.getMessage());} finally {if (ossClient != null) {ossClient.shutdown();}}return Result.success();}
}