使用阿里云对象存储OSS收藏老婆新垣结衣日常照

目录

  • 阿里云OSS官方文档
  • 开通阿里云OSS服务
  • 入门使用
  • java代码上传文件至OSS
    • 1、准备工作:创建阿里云OSS许可证(获取对Api的访问权限)
      • 选择继续使用 AccessKey
      • 创建AccessKey
      • 创建成功
    • springBoot整合OSS
      • 依赖
      • 配置文件 application.yaml
      • 常量工具类
      • OssController
      • OssService
    • 效果
  • 结尾

阿里云OSS官方文档

官方文档

开通阿里云OSS服务

先进入控制台,点击菜单栏的对象存储 OSS,根据提示开通服务。

在这里插入图片描述

阿里云OSS 学习路径

入门使用

使用步骤

  1. 首先创建一个Bucket在这里插入图片描述
    在这里插入图片描述

  2. 使用OOS

在这里插入图片描述
3. 上传文件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

java代码上传文件至OSS

API文档

1、准备工作:创建阿里云OSS许可证(获取对Api的访问权限)

在这里插入图片描述

选择继续使用 AccessKey

在这里插入图片描述

创建AccessKey

在这里插入图片描述

创建成功

在这里插入图片描述

springBoot整合OSS

依赖

<dependencies><!-- 阿里云oss依赖 --><dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>${aliyun.oss.version}</version></dependency><!-- 日期工具栏依赖 --><dependency><groupId>joda-time</groupId><artifactId>joda-time</artifactId></dependency></dependencies>

配置文件 application.yaml

server:port: 8002
spring:application:name: service-ossprofiles:active: dev## 阿里云 OSS
aliyun:oss:file:endpoint: oss-cn-beijing.aliyuncs.com # 地域节点keyid: LTAI5tFNjjg1s5mxxDC6Rxc4 # AccessKeyIdkeysecret: fZvVNtbU8pNfmAxxx53jYXhMUVHOo8 # 密钥bucketname: edu-xiuyuan # bucket名字

常量工具类

package com.zlf.oss.utils;import lombok.Data;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;/*** Created with IntelliJ IDEA.** @Auther: zlf* @Date: 2021/03/22/20:01* @Description: 读取常量的工具类*//*** InitializingBean 实现该接口 在SpringBoot项目初始化时会初始化将配置文件中的值赋给对应属性*/
@Component
public class ConstantPropertiesUtils implements InitializingBean {@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_POINT;public static String KEY_ID;public static String KEY_SECRET;public static String BUCKET_NAME;/*** @Description: 属性赋值后,会执行该方法初始化静态成员* @Param: []* @return: void* @Author: zlf* @Date: 2021/3/22*/@Overridepublic void afterPropertiesSet() throws Exception {END_POINT = endPoint;KEY_ID = keyId;KEY_SECRET = keySecret;BUCKET_NAME = bucketName;}
}

OssController

package com.zlf.oss.Controller;import com.zlf.commonutils.Response.R;
import com.zlf.oss.service.OssService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;import java.io.IOException;/*** Created with IntelliJ IDEA.** @Auther: zlf* @Date: 2021/03/22/20:16* @Description: 阿里云oss  上传文件*/
@RestController
@RequestMapping("/eduOss/fileOss")
@CrossOrigin
@Api(description = "oss上传接口")
public class OssController {@Autowiredprivate OssService ossService;/*** @Description: 上传头像* @Param: [file]* @return: com.zlf.commonutils.Response.R* @Author: zlf* @Date: 2021/3/22*/@PostMapping("uploadFile")@ApiOperation("上传文件")public R uploadOssFile(@ApiParam(name = "file",value = "文件") MultipartFile file)  {//获取上传对象String url = null;try {url = ossService.uploadFileAvatar(file);} catch (IOException e) {e.printStackTrace();}return R.ok().data("url",url);}
}

OssService

package com.zlf.oss.service.impl;import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClient;
import com.aliyun.oss.OSSClientBuilder;
import com.zlf.oss.service.OssService;
import com.zlf.oss.utils.ConstantPropertiesUtils;
import com.zlf.servicebase.exceptionHandler.GlobalException;
import org.joda.time.DateTime;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;import java.io.*;
import java.util.UUID;/*** Created with IntelliJ IDEA.** @Auther: zlf* @Date: 2021/03/22/20:15* @Description:*/
@Service
public class OssServiceImpl implements OssService {/*** @Description: 上传文件到阿里云oss* @Param: [file]* @return: 文件 url* @Author: zlf* @Date: 2021/3/22*/@Overridepublic String uploadFileAvatar(MultipartFile file)  {// yourEndpoint填写Bucket所在地域对应的Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。String endpoint = ConstantPropertiesUtils.END_POINT;// 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。String accessKeyId = ConstantPropertiesUtils.KEY_ID;String accessKeySecret = ConstantPropertiesUtils.KEY_SECRET;String bucketName = ConstantPropertiesUtils.BUCKET_NAME;try{// 创建OSSClient实例。OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);// 填写本地文件的完整路径。如果未指定本地路径,则默认从示例程序所属项目对应本地路径中上传文件流。InputStream inputStream = file.getInputStream();// 获取文件名称String fileName = file.getOriginalFilename();// 在文件名称中添加一个唯一的值String uuid = UUID.randomUUID().toString().replaceAll("-", "");fileName = uuid + fileName;// 按照时间日期进行分类 如 / 2021/03/22/xxx.jpgString datePath = new DateTime().toString("yyyy/MM/dd");fileName = datePath  +"/"+  fileName;// 填写Bucket名称和Object完整路径。Object完整路径中不能包含Bucket名称。以及上传文件的文件流ossClient.putObject(bucketName, fileName, inputStream);// 关闭OSSClient。ossClient.shutdown();//把上传路径返回 (手动拼接返回)//模板 https://edu-xiuyuan.oss-cn-beijing.aliyuncs.com/2021/03/20/%E6%96%B0%E6%A1%93%E7%BB%93%E8%A1%A3.pngString url = "https://"+ bucketName +"."+ endpoint + "/" +fileName;return url;}catch (Exception e){e.printStackTrace();return null;}}
}

详细的Api接口参考官方文档

效果

在这里插入图片描述
在这里插入图片描述

结尾

其他功能的实现请参考官方文档。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/548011.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

当用户流失比较明显后, 如何提升活跃度? push notification 是一个有效的方式吗?...

当用户流失比较明显后&#xff0c; 如何提升活跃度&#xff1f; push notification 是一个有效的方式吗&#xff1f;添加评论 分享按票数排序10 个回答赞同反对&#xff0c;不会显示你的姓名Linda Jiang&#xff0c;友盟商务副总裁17 票&#xff0c;来自 LaneYu、程希冀、邹雪梅…

无法生成部件汇总表_RFID在汽车零部件企业仓储物流中的应用

随着物流行业的快速发展,RFID技术也逐渐得到了广泛应用。借助RFID技术,能在一定程度上切实促进数据和信息之间的快速传递,与此同时,这种传递方式属于非接触性的。现在RFID技术在不同领域得到了广泛应用,例如供应链管理,公交卡等.特别在近些年来,随着物流行业快速发展,RFID技术在…

CentOS7 源码编译安装NodeJS 最新版本Shell脚本

1&#xff0c;环境&#xff1a; 操作系统 CentOS Linux release 7.6.1810 (Core) 服务器环境 “腾讯云”服务器 cat /etc/centos-release # 查看centos系统版本 Node.js源码包下载地址&#xff1a;https://nodejs.org/dist/ 这里我们选择“Node.js v9.9.0” 执行如…

EasyExcel入门使用

目录标题官网github地址中文文档简单读简单写说明官网github地址 地址 中文文档 中文文档 简单读 import com.alibaba.excel.annotation.ExcelIgnore; import com.alibaba.excel.annotation.ExcelProperty; import lombok.Data;import java.util.Date;/*** Created with I…

git 创建webpack项目_从0到1开发一个小程序cli脚手架(一)创建页面/组件模版篇...

github地址&#xff1a;https://github.com/jinxuanzheng01/xdk-clicli工具是什么&#xff1f;在正文之前先大致描述下什么是cli工具&#xff0c;cli工具英文名command-line interface,也就是命令行交互接口&#xff0c;比较典型的几个case例如&#xff0c;create-react-app&am…

Nginx 502 Bad Gateway 错误的原因及解决方法

2019独角兽企业重金招聘Python工程师标准>>> 刚才在调试程序的时候&#xff0c;居然服务器502错误&#xff0c;昨天晚上也发生了&#xff0c;好像我没有做非常规的操作。 然后网上寻找了下答案&#xff0c; 把一些原因及解决方法汇总一下&#xff0c;以防生产环境下…

easyExcel实现导入数据库

目录标题需求easyExcel Maven 依赖过程效果需求 我们需要将excel的数据导入至数据库中。 easyExcel Maven 依赖 <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.2.6</version></dep…

CentOS7 shell脚本安装jdk

1&#xff0c;系统环境 操作系统 CentOS Linux release 7.6.1810 (Core) 64位 下载 Java SE Development Kit 8u152&#xff0c;文件名&#xff1a;jdk-8u152-linux-x64.rpm&#xff0c;下载地址&#xff1a;https://www.oracle.com/technetwork/java/javase/downloads/ja…

如何解决在使用ElementUI时发现有些控件是英文的

如下图 解决 我们需要在入口文件 main.js 中将 ElementUI 的默认语言改为中文。 import locale from element-ui/lib/locale/lang/en // lang i18n 英文 import zhLocale from element-ui/lib/locale/lang/zh-CN // 中文// 选择elementUi 默认语言为中文 Vue.use(ElementUI, …

CentOS7 源码编译安装Python3 shell脚本

1&#xff0c;系统环境 操作系统 CentOS Linux release 7.6.1810 (Core) 64位 2&#xff0c;Linux的Python3安装后即集成了pip&#xff0c;无需重新独立安装pip&#xff0c;执行以下命令完成python3和pip3的安装 yum groupinstall -y "Development tools" # 安…

ElementUI+Java实现搜索提示列表

效果 实现流程 首先我们需要在后端获取数据&#xff0c;我们可以根据name属性去模糊查询&#xff0c;返回Map类型的列表 然后将它返回给前端。 controller ApiOperation("根据关键字查询讲师名列表")GetMapping("list/name/{key}")public ResultVo sele…

CentOS7 搭建Pulsar 消息队列环境,CentOS(Linux)部署Pulsar,亲测成功,以及Python操作Pulsar实例驱动

在 最佳开源数据库与数据分析平台奖 中&#xff0c;之前曾连续两年入选的 Kafka 意外滑铁卢落选&#xff0c;取而代之的是新兴项目 Pulsar&#xff0c;Bossie Awards中对 Pulsar 点评如下&#xff1a;“Pulsar 旨在取代 Apache Kafka 多年的主宰地位。Pulsar在很多情况下提供了…

SpringSecurity +Jwt 实现权限管理

目录标题原理架构图demo的项目结构JwtTokenUtilRestAuthenticationEntryPoint 和 RestfulAccessDeniedHandlerMyUserDetailsServiceJwtAuthenticationTokenFilterSecurityConfigControllerPostman 测试为了方便&#xff0c;未采用是从数据库读取的方式。工具类都是别人那偷的&a…

FreeMarker_模板引擎_代码自动生成器_源码下载

首先我们先来认识一下Freemarker 1.what is the FreeMarker? 你可以到freemarker的官网上去&#xff0c;那里有很详细的介绍&#xff1a;http://freemarker.org/ 这里大概说一下&#xff1a;FreeMarker是一个用Java语言编写的模板引擎&#xff0c;它基于模板来生成文本输出。 …

CentOS7 搭建Kafka消息队列环境,以及Python3操作Kafka Demo

Kafka适合什么样的场景? 它可以用于两大类别的应用: 构造实时流数据管道&#xff0c;它可以在系统或应用之间可靠地获取数据。 (相当于message queue)构建实时流式应用程序&#xff0c;对这些流数据进行转换或者影响。 (就是流处理&#xff0c;通过kafka stream topic和topi…

hive序列生成_常见的序列化框架及Protobuf原理

享学课堂作者&#xff1a;逐梦々少年转载请声明出处&#xff01;上次我们详细的学习了Java中的序列化机制&#xff0c;但是我们日常开发过程中&#xff0c;因为java的序列化机制的压缩效率问题&#xff0c;以及序列化大小带来的传输的效率问题&#xff0c;一般很少会使用原生的…

decode语句不能再嵌套_自学C++基础教程【流程控制语句】(for、while 、do while 语句 )...

for语句for语句是C语言所提供的一种功能广泛的循环语句。下图为for语句的标准形式&#xff1a;表达式1&#xff1a;通常用于给循环变量赋初值&#xff0c;一般是赋值表达式。表达式2&#xff1a;通常用于设立循环条件&#xff0c;一般为关系表达式或逻辑表达式。表达式3&#x…

CentOS 7 利用Docker搭建禅道系统

1&#xff0c;系统环境 a&#xff0c;操作系统 CentOS Linux release 7.6.1810 (Core) 64位 b&#xff0c;确保Docker环境已经安装&#xff0c;具体教程请看 CentOS 安装docker 禅道系统一键安装说明文档&#xff1a;http://www.zentao.net/book/zentaopmshelp/90.html …

centos7 docker删除端口映射_centos7安装docker,结合docker安装mysql,学习简单使用

需要快速安装centos7的可以结合上一遍文章vagrant结合virtualbox让你直接在cmd窗口操作linux系统centos7地址&#xff1a;https://www.toutiao.com/i6858180977164812811/?group_id6858180977164812811Docker先说一下个人理解&#xff1a;docker其实就是一个工具&#xff0c;镜…

MongoDB中关于64位整型存储解决方案

为什么80%的码农都做不了架构师&#xff1f;>>> 社区内一哥们smcboy 提出关于php中操作MongoDB存储整数问题&#xff0c;找到点资料花点时间翻译过来&#xff0c;是个很好的学习方式。红薯 那篇讨论我的修改回复&#xff0c;仍然没有更新可恶啊~&#xff01;&#…