淘宝便宜的团购网站建设,百度开户怎么开,外国公司做网站,黑客软件文章目录 1、OSS介绍及开通1.1、阿里云OSS简介1.2、开通OSS 2、创建存储空间bucket及密钥获取2.1、创建存储空间2.2、获取密钥 3、OSS快速入门案例4、在springboot项目中整合4.1、将oss配置放到yml文件中4.2、创建Oss属性类#xff0c;接收yml文件中的属性4.3、封装文件上传功… 文章目录 1、OSS介绍及开通1.1、阿里云OSS简介1.2、开通OSS 2、创建存储空间bucket及密钥获取2.1、创建存储空间2.2、获取密钥 3、OSS快速入门案例4、在springboot项目中整合4.1、将oss配置放到yml文件中4.2、创建Oss属性类接收yml文件中的属性4.3、封装文件上传功能到AliOssUtil类4.4、通过配置类将AliOssUtil注入4.5、在具体Controller中使用AliOssUtil完成文件上传 1、OSS介绍及开通
1.1、阿里云OSS简介
阿里云对象存储服务Object Storage Service简称OSS为您提供基于网络的数据存取服务。使用OSS您可以通过网络随时存储和调用包括文本、图片、音频和视频等在内的各种非结构化数据文件。 阿里云OSS将数据文件以对象object的形式上传到存储空间bucket中。
可以进行以下操作
创建一个或者多个存储空间向每个存储空间中添加一个或多个文件。通过获取已上传文件的地址进行文件的分享和下载。通过修改存储空间或文件的属性或元信息来设置相应的访问权限。在阿里云管理控制台执行基本和高级OSS任务。使用阿里云开发工具包或直接在应用程序中进行RESTful API调用执行基本和高级OSS任务
1.2、开通OSS
登录阿里云官网。 点击右上角的控制台。
将鼠标移至产品找到并单击对象存储OSS打开OSS产品详情页面。在OSS产品详情页中的单击立即开通。 可以选择按量付费
开通服务后在OSS产品详情页面单击管理控制台直接进入OSS管理控制台界面。您也可以单击位于官网首页右上方菜单栏的控制台进入阿里云管理控制台首页然后单击左侧的对象存储OSS菜单进入OSS管理控制台界面。
2、创建存储空间bucket及密钥获取
2.1、创建存储空间
点击【创建bucket】按钮
填写
bucket名字、地域、将读写权限设置为 【公共读】点击确定 创建成功后展示 bucket的基本信息和 当前存储空间的访问域名信息
2.2、获取密钥
在界面用户右上角下拉框中点击accessKey管理 第一次进入时需要创建新的accessKey
创建accessKey完成后会获得两个信息保存好这两个信息不要泄露这两个信息是访问阿里云服务的合法身份凭证
AccessKey IDAccessKey Secret
且AccessKey Secret只会在创建时提供查询需要自己保存好
3、OSS快速入门案例
1创建测试工程引入依赖
dependencygroupIdcom.aliyun.oss/groupIdartifactIdaliyun-sdk-oss/artifactIdversion3.15.1/version
/dependency2新建类和main方法
在下面的案例中访问oss需要准备以下信息
endpoint地域节点在bucket的概览中可以看到华东1杭州为https://oss-cn-hangzhou.aliyuncs.comaccessKeyId 在2.2节中创建密钥获取accessKeySecret在2.2节中创建密钥获取bucketNameBucket名称2.1节创建存储空间的名称objectName文件在 云存储空间bucket中的名称filePath 文件的本地路径
调用ossClient.putObject(bucketName, objectName, inputStream);这条语句后完成文件上传
上传完成后文件的访问路径为 https:// [BucketName].[Endpoint] / [ObjectName]
import org.junit.jupiter.api.Test;
import com.aliyun.oss.ClientException;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.OSSException;
import java.io.FileInputStream;
import java.io.InputStream;public class AliOssTest {Testpublic void testOss(){// Endpoint以华东1杭州为例其它Region请按实际情况填写。String endpoint https://oss-cn-hangzhou.aliyuncs.com;// 阿里云账号AccessKey拥有所有API的访问权限风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维请登录RAM控制台创建RAM用户。String accessKeyId ---------------------;String accessKeySecret -----------------------;// 填写Bucket名称例如examplebucket。String bucketName -----------;// 填写Object完整路径完整路径中不能包含Bucket名称例如exampledir/exampleobject.txt。String objectName 0001.jpg;// 填写本地文件的完整路径例如D:\\localpath\\examplefile.txt。// 如果未指定本地路径则默认从示例程序所属项目对应本地路径中上传文件流。String filePath C:\\Users\\Administrator\\Pictures\\Saved Pictures\\10.jpg;// 创建OSSClient实例。OSS ossClient new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);try {InputStream inputStream new FileInputStream(filePath);// 创建PutObject请求。ossClient.putObject(bucketName, objectName, inputStream);} 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 (Exception 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();}}}
}4、在springboot项目中整合
4.1、将oss配置放到yml文件中
endpointaccess-key-idaccess-key-secretbucket-name
4.2、创建Oss属性类接收yml文件中的属性
ConfigurationProperties(prefix “sky.alioss”) 注解直接读取yml文件中配置赋值给属性成员
Component注解 将AliOssProperties类 注入ioc容器springboot会自动扫描包
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;//阿里云oss属性配置类
Component
ConfigurationProperties(prefix sky.alioss)
Data
public class AliOssProperties {private String endpoint;private String accessKeyId;private String accessKeySecret;private String bucketName;}4.3、封装文件上传功能到AliOssUtil类
将AliOss文件上传方法封装到 AliOssUtil 类中
其中 upload()方法 用于文件上传返回String类型 的 文件上传后的访问路径
其中 类中的几个属性为yml配置的属性后续为AliOssUtil属性成员赋值
Data
AllArgsConstructor
Slf4j
public class AliOssUtil {private String endpoint;private String accessKeyId;private String accessKeySecret;private String bucketName;/*** 文件上传** param bytes 文件的字节数组* param objectName 文件名uuid* return 返回文件的 阿里云url 路径*/public String upload(byte[] bytes, String objectName) {// 创建OSSClient实例。OSS ossClient new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);try {// 创建PutObject请求。ossClient.putObject(bucketName, objectName, new ByteArrayInputStream(bytes));} 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();}}//约定文件访问路径规则 https://BucketName.Endpoint/ObjectNameStringBuilder stringBuilder new StringBuilder(https://);stringBuilder.append(bucketName).append(.).append(endpoint).append(/).append(objectName);log.info(文件上传到:{}, stringBuilder.toString());return stringBuilder.toString();}
}4.4、通过配置类将AliOssUtil注入
通过配置类将 AliOssUtil 注入IOC容器并为AliOssUtil 中的属性赋值
Configuration 表示这是一个配置类
传入参数 aliOssProperties 为 4.2节中 注入的属性类4.2中 AliOssProperties类加了Component注解所以aliOssProperties已经在IOC容器中可以将IOC容器中的Bean作为实参传入。
//配置类创建AliOssUtils对象
Configuration
Slf4j
public class OSSConfiguration {//注入bean AliOssUtil//AliOssProperties是已经注入的bean作为aliOssUtil的参数BeanConditionalOnMissingBeanpublic AliOssUtil aliOssUtil(AliOssProperties aliOssProperties){log.info(开始注入阿里云oss文件上传工具类对象{},aliOssProperties);return new AliOssUtil(aliOssProperties.getEndpoint(),aliOssProperties.getAccessKeyId(),aliOssProperties.getAccessKeySecret(),aliOssProperties.getBucketName() );}
}4.5、在具体Controller中使用AliOssUtil完成文件上传
在具体Controller中装配并使用AliOssUtil
只需要调用 aliOssUtil.upload(file.getBytes(), objectName) 即可完成文件上传
前端需要调用的rest接口为 http://【ip】:【port】/admin/common/upload 并携带文件作为参数进行上传
RestController
RequestMapping(/admin/common)
Slf4j
public class CommonController {// 自动装配阿里云oss工具类Autowiredprivate AliOssUtil aliOssUtil;PostMapping(/upload)ApiOperation(文件上传)public ResultString upload(MultipartFile file){log.info(文件上传{},file);try {//原始文件名String originalFilename file.getOriginalFilename();//截取文件名后缀 xxx.pngString extension originalFilename.substring(originalFilename.lastIndexOf(.));//构造新文件名称String objectName UUID.randomUUID().toString() extension;//返回文件请求路径String filePath aliOssUtil.upload(file.getBytes(), objectName);return Result.success(filePath);} catch (IOException e) {log.error(文件上传失败);e.printStackTrace();}return Result.error(文件上传失败);}
}
文章转载自: http://www.morning.jfcbs.cn.gov.cn.jfcbs.cn http://www.morning.bntgy.cn.gov.cn.bntgy.cn http://www.morning.tfpmf.cn.gov.cn.tfpmf.cn http://www.morning.rstrc.cn.gov.cn.rstrc.cn http://www.morning.nnttr.cn.gov.cn.nnttr.cn http://www.morning.cywf.cn.gov.cn.cywf.cn http://www.morning.ntyks.cn.gov.cn.ntyks.cn http://www.morning.tkxr.cn.gov.cn.tkxr.cn http://www.morning.rlbc.cn.gov.cn.rlbc.cn http://www.morning.jbpdk.cn.gov.cn.jbpdk.cn http://www.morning.dhyzr.cn.gov.cn.dhyzr.cn http://www.morning.lndongguan.com.gov.cn.lndongguan.com http://www.morning.kzdgz.cn.gov.cn.kzdgz.cn http://www.morning.gassnw.com.gov.cn.gassnw.com http://www.morning.blqsr.cn.gov.cn.blqsr.cn http://www.morning.srbfp.cn.gov.cn.srbfp.cn http://www.morning.mfsjn.cn.gov.cn.mfsjn.cn http://www.morning.thbqp.cn.gov.cn.thbqp.cn http://www.morning.sgfnx.cn.gov.cn.sgfnx.cn http://www.morning.kwz6232.cn.gov.cn.kwz6232.cn http://www.morning.dpplr.cn.gov.cn.dpplr.cn http://www.morning.pttrs.cn.gov.cn.pttrs.cn http://www.morning.wjtwn.cn.gov.cn.wjtwn.cn http://www.morning.lkbdy.cn.gov.cn.lkbdy.cn http://www.morning.lwmxk.cn.gov.cn.lwmxk.cn http://www.morning.lpbrp.cn.gov.cn.lpbrp.cn http://www.morning.whothehellami.com.gov.cn.whothehellami.com http://www.morning.lcplz.cn.gov.cn.lcplz.cn http://www.morning.zrgx.cn.gov.cn.zrgx.cn http://www.morning.gglhj.cn.gov.cn.gglhj.cn http://www.morning.yqrfn.cn.gov.cn.yqrfn.cn http://www.morning.bzgpj.cn.gov.cn.bzgpj.cn http://www.morning.zmqb.cn.gov.cn.zmqb.cn http://www.morning.mmjyk.cn.gov.cn.mmjyk.cn http://www.morning.tslxr.cn.gov.cn.tslxr.cn http://www.morning.wylpy.cn.gov.cn.wylpy.cn http://www.morning.rhqn.cn.gov.cn.rhqn.cn http://www.morning.rngyq.cn.gov.cn.rngyq.cn http://www.morning.ptwqf.cn.gov.cn.ptwqf.cn http://www.morning.zrkws.cn.gov.cn.zrkws.cn http://www.morning.gmmxh.cn.gov.cn.gmmxh.cn http://www.morning.nyqnk.cn.gov.cn.nyqnk.cn http://www.morning.jfjqs.cn.gov.cn.jfjqs.cn http://www.morning.qqrqb.cn.gov.cn.qqrqb.cn http://www.morning.rhdln.cn.gov.cn.rhdln.cn http://www.morning.kxmyj.cn.gov.cn.kxmyj.cn http://www.morning.rfjmy.cn.gov.cn.rfjmy.cn http://www.morning.fcwb.cn.gov.cn.fcwb.cn http://www.morning.lwgsk.cn.gov.cn.lwgsk.cn http://www.morning.rljr.cn.gov.cn.rljr.cn http://www.morning.llllcc.com.gov.cn.llllcc.com http://www.morning.qjghx.cn.gov.cn.qjghx.cn http://www.morning.qcmhs.cn.gov.cn.qcmhs.cn http://www.morning.rzczl.cn.gov.cn.rzczl.cn http://www.morning.zkrzb.cn.gov.cn.zkrzb.cn http://www.morning.bxdlrcz.cn.gov.cn.bxdlrcz.cn http://www.morning.wpmlp.cn.gov.cn.wpmlp.cn http://www.morning.tdmr.cn.gov.cn.tdmr.cn http://www.morning.lsgjf.cn.gov.cn.lsgjf.cn http://www.morning.htpjl.cn.gov.cn.htpjl.cn http://www.morning.btns.cn.gov.cn.btns.cn http://www.morning.bnfsw.cn.gov.cn.bnfsw.cn http://www.morning.xkhxl.cn.gov.cn.xkhxl.cn http://www.morning.yhwxn.cn.gov.cn.yhwxn.cn http://www.morning.oumong.com.gov.cn.oumong.com http://www.morning.msxhb.cn.gov.cn.msxhb.cn http://www.morning.lzwfg.cn.gov.cn.lzwfg.cn http://www.morning.grbgn.cn.gov.cn.grbgn.cn http://www.morning.bnlsd.cn.gov.cn.bnlsd.cn http://www.morning.nzklw.cn.gov.cn.nzklw.cn http://www.morning.zfrs.cn.gov.cn.zfrs.cn http://www.morning.kzpy.cn.gov.cn.kzpy.cn http://www.morning.rzjfn.cn.gov.cn.rzjfn.cn http://www.morning.tqygx.cn.gov.cn.tqygx.cn http://www.morning.dndjx.cn.gov.cn.dndjx.cn http://www.morning.mymz.cn.gov.cn.mymz.cn http://www.morning.ymfzd.cn.gov.cn.ymfzd.cn http://www.morning.rstrc.cn.gov.cn.rstrc.cn http://www.morning.zdfrg.cn.gov.cn.zdfrg.cn http://www.morning.mbrbk.cn.gov.cn.mbrbk.cn