阿里云OSS 存储对象的注册与使用

目录

一、什么是阿里云OSS

二、 点击免费试用

2.1 选择第一个,点击免费试用 ​编辑

2.2 登录管理控制台

2.3 进入Bucket

2.4、在阿里云网站上的个人中心配置Accesskey,查询accessKeyId和accessKeySecret。 

2.5、进入AccssKey管理页面应该会出现下图提示,accessKeySecret为空,不用点击下载,直接确定即可

2.6 点击创建AccessKe

​编辑 三、OSS结合代码使用

3.1 引入pom.xml 依赖

3.2、创建对应的工具类AliOssUtil类,此代码是固定代码,直接CV即可

3.3 、在该工具类中有四个属性,通过上面的步骤已经获得了我们上传图片到OSS所需要的四个参数:bucketName、endpoint、accessKeyId、accessKeySecret。这些属性需要我们手动在application.properties中配置。

3.4 配置相应的model类

3.5、将工具类配置到ioc容器中,便于后续的使用。

3.6 测试:创建控制层


一、什么是阿里云OSS

    阿里云对象存储服务(Object Storage Service,简称OSS)是阿里云推出的一种在线存储服务,旨在为企业和个人用户提供安全、可靠、便捷且经济高效的云存储解决方案

二、开通服务(新用户使用三个月)

https://www.aliyun.com/product/oss?spm=5176.8465980.unusable.ddetail.7df51450v1aNb1

二、 点击免费试用

2.1 选择第一个,点击免费试用 

2.2 登录管理控制台

https://oss.console.aliyun.com/overview 

在左侧导航栏,单击Bucket列表,然后单击创建Bucket

2.3 进入Bucket

 点击概要 

2.4、在阿里云网站上的个人中心配置Accesskey,查询accessKeyId和accessKeySecret。 

2.5、进入AccssKey管理页面应该会出现下图提示,accessKeySecret为空,不用点击下载,直接确定即可

 

2.6 点击创建AccessKe

  •  通过安全验证后可以看到生成的accessKeyId和accessKeySecret,大家下载csv文件或者复制下来,因为点击确定后不再显示accessKeySecret!!

 

点击确定

 三、OSS结合代码使用

3.1 引入pom.xml 依赖

  <dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.10.2</version></dependency>

3.2、创建对应的工具类AliOssUtil类,此代码是固定代码,直接CV即可

import com.aliyun.oss.ClientException;
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.OSSException;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import java.io.ByteArrayInputStream;@Data
@AllArgsConstructor
//固定代码,CV直接使用
public class AliOssUtil {private String endpoint;private String accessKeyId;private String accessKeySecret;private String bucketName;/*** 文件上传** @param bytes :传入的文件要转为byte[]* @param objectName :表示在oss中存储的文件名字。* @return*/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);return stringBuilder.toString();}
}

3.3 、在该工具类中有四个属性,通过上面的步骤已经获得了我们上传图片到OSS所需要的四个参数:bucketName、endpoint、accessKeyId、accessKeySecret。这些属性需要我们手动在application.properties中配置。

# 配置阿里云OSS(application.properties)
aliyun.oss.bucketName = hyc-8147
aliyun.oss.endpoint = oss-cn-beijing.aliyuncs.com
aliyun.oss.accessKeyId = LTAI5tE2krid8AXzidDUpn9n
aliyun.oss.accessKeySecret = 2A0Vrvj982nfRPWDVt3lp# yml版(application.yml)
#aliyun:
#  oss:
#    bucketName: hyc-8147
#    endpoint: oss-cn-beijing.aliyuncs.com
#    accessKeyId: LTAI5tE2krid8AXzidDUpn9n
#    accessKeySecret: 2A0Vrvj982nfRPWDVt3lp

3.4 配置相应的model类

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;/*** <p>Project: wms-project - OSSConfig</p>* <p>Powered by fpl1116 On 2024-02-28 23:26:54</p>* <p>描述:<p>** @author penglei* @version 1.0* @since 1.8*/@Configuration
@ConfigurationProperties(prefix = "aliyun.oss")
@Data
public class AliOssProperties {private String endpoint;private String accessKeyId;private String accessKeySecret;private String bucketName;}

3.5、将工具类配置到ioc容器中,便于后续的使用。

import com.fpl.model.AliOssProperties;
import com.fpl.utils.AliOssUtil;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class OssConfiguration {@Bean@ConditionalOnMissingBeanpublic AliOssUtil getAliOssUtil(AliOssProperties aliOssProperties) {
//        log.info("创建OssUtil");AliOssUtil aliOssUtil = new AliOssUtil(aliOssProperties.getEndpoint(),aliOssProperties.getAccessKeyId(),aliOssProperties.getAccessKeySecret(),aliOssProperties.getBucketName());return aliOssUtil;}
}

3.6 测试:创建控制层

@RestController
@RequestMapping("api/upload")
public class UploadController {@Autowiredprivate AliOssUtil aliOssUtil;@PostMapping("/oss1")//万能上传public String upload1(@RequestBody UploadInfo uploadInfo){String name = uploadInfo.getName();String base64 = uploadInfo.getBase64();String[] base64Array = StrUtil.splitToArray(base64, "base64,");byte[] bytes = Base64.decode(base64Array[1]);name = PinyinUtil.getPinyin(name, "");String newName = System.currentTimeMillis() +"_"+name;return aliOssUtil.upload1(bytes, newName);}
}

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

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

相关文章

连接共享打印机提示0x00000011b

步骤一&#xff1a;调出运行窗口&#xff0c;输入【regedit】调出注册表编辑器。步骤二&#xff1a;找到以下路径&#xff1a;【计算机\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print】。步骤三&#xff1a;鼠标右击——点击【新建】——选择【DWORD (32位&#…

基于TypeScript自定义Strapi users-permissions插件接口

Strapi的官方文档提供了扩展插件的方式&#xff0c;例如在src/extensions/users-permissions/strapi-server.ts中自定义&#xff0c;但文档提供的例子直接重写了原有插件的函数&#xff0c;而无法通过类似自定义API调用super.find()等方式调用原有插件的函数。 // 自定义API的…

Webservice使用教程

Webservice使用教程&#xff08;jax-ws&#xff09; Webservice的交互模式是一个类似于CS结构的模式&#xff0c;因此它需要一个Server端与一个Client端。在Client端访问Server端的接口来实现Webservice的功能。 Server端 打开IDEA创建gradle模块 webservice-01-server1 然后…

【VI/VIM】基本操作备忘录

简介 新建/打开文件 工作模式 常用命令 移动命令 文本选中 撤销、删除 复制粘贴 替换 缩排 查找 替换 插入 分屏 练习

【动态规划】C++简单多状态dp问题(打家劫舍、粉刷房子、买卖股票的最佳时机...)

文章目录 前言1. 前言 - 理解动态规划算法2. 关于 简单多状态的dp问题2.5 例题按摩师/打家劫舍 3. 算法题3.1_打家劫舍II3.2_删除并获得点数3.3_粉刷房子3.4_买卖股票的最佳时机含冷冻期3.5_买卖股票的最佳时机含手续费3.6_买卖股票的最佳时机III3.7_买卖股票的最佳时机IV 前言…

AcWing 800. 数组元素的目标和——算法基础课题解

AcWing 800. 数组元素的目标和 题目描述 给定两个升序排序的有序数组 A 和 B&#xff0c;以及一个目标值 x。 数组下标从 0 开始。 请你求出满足 A[i]B[j]x 的数对 (i,j)。 数据保证有唯一解。 输入格式 第一行包含三个整数 n,m,x&#xff0c;分别表示 A 的长度&#xf…

C# 语法全解总目录

C# 语法全解总目录 简介正文C#各大版本特性C# 语言类型C# 面向对象编程(一) 类相关(二) 继承 C#进阶(一) 委托(二) 事件(三) 元组(四) XML相关(五) 动态绑定 简介 记录C# 专栏所有文章的路径 正文 C#各大版本特性 C#各大版本特性 C# 语言类型 系列链接 C#语法系列:C# 语言类…

交换机的种类有哪些?主要都具有哪些作用?

在当今数字化时代&#xff0c;网络已经成为我们生活和工作中不可或缺的一部分。无论是家庭网络还是企业网络&#xff0c;都需要有效的网络设备来实现数据通信和资源共享。而网络交换机作为一种重要的网络设备&#xff0c;扮演着连接和管理网络设备的关键角色。本文将探讨交换机…

开源贡献代码之​探索一下CPython

探索一下Cython 本篇文章将会围绕最近给Apache提的一个feature为背景&#xff0c;展开讲讲CPython遇到的问题&#xff0c;以及尝试自己从0写一个库出来&#xff0c;代码也已经放星球了&#xff0c;感兴趣的同学可以去下载学习。 0.背景 最近在给apache arrow提的一个feature因为…

《TinyLlama: An Open-Source Small Language Model》全文翻译

【Title】 TinyLlama&#xff1a;开源小语言模型 【Abstract】 我们推出了 TinyLlama&#xff0c;这是一个紧凑的 1.1B 语言模型&#xff0c;在大约 1 万亿个令牌上进行了大约 3 个时期的预训练。 TinyLlama 基于 Llama 2&#xff08;Touvron 等人&#xff0c;2023b&#xff…

VUE项目使用.env配置多种环境以及如何加载环境

第一步&#xff0c;创建多个环境配置文件 Vue CLI 项目默认使用 .env 文件来定义环境变量。你可以通过创建不同的 .env 文件来为不同环境设置不同的环境变量&#xff0c;例如&#xff1a; .env —— 所有模式共用.env.local —— 所有模式共用&#xff0c;但不会被 git 提交&…

C语言 三目运算符

C语言 逻辑分支语句中 还有一种 三目运算符 我们编写代码如下 #include <stdio.h>int main() {const char* a 1 1 ? "表达式1" : "表达式2";printf("%s", a);return 0; }这里 我们根据逻辑 先定义一个a 然后 它的值 等于一个 三目运算…

【CodeGeeX】国产的免费AI编程助手

CodeGeeX&#xff08;官网&#xff1a;https://codegeex.cn/&#xff09;是一款基于大模型的全能的智能编程助手。它可以实现代码的生成与补全、自动添加注释、代码翻译以及智能问答等功能&#xff0c;能够帮助开发者显著提高工作效率。CodeGeeX支持主流的编程语言&#xff0c;…

Serverless:程序员必须知道的云计算利器

作为一名程序员&#xff0c;你是否厌倦了管理服务器和基础设施的繁琐任务&#xff1f;Serverless 架构横空出世&#xff0c;解放你 khỏi这些负担&#xff0c;让你专注于编写代码。 什么是 Serverless&#xff1f; Serverless 是一种云计算模型&#xff0c;它允许你编写和部署…

C++练级之路——类和对象(下)

目录 1、构造函数初始化列表 2、类型转换 3、explicit关键字 4、static成员 5、友元 友元函数 友元类 6、内部类 7、匿名对象 8、拷贝构造时的一些编译器优化 差不多结束了&#xff0c;类和对象&#xff01; 1、构造函数初始化列表 初始化列表&#xff1a;以一个冒号…

python:元组,字符串,切片

一、元组# 列表可以修改内容&#xff0c;元组可以不被修改 # 在程序内封装数据&#xff0c;不希望数据被篡改&#xff0c;所以使用元组 # 语法&#xff1a; 不限制类型 # 定于元组的字面量&#xff1a; &#xff08;元素&#xff0c;元素&#xff0c;元素.....&#xff09; # 定…

萌新_1 环境安装(基于QQNT框架 Python Flask)

遇到问题加QQ群聊 群主在线解答 点击加入群聊【星辰开发】 一&#xff1a;安装QQ 目前为开发&#xff0c;推荐都安装到一台电脑上 直接安装到本地windows电脑&#xff0c; 优点方便开发 一键安装 Windows 用户一键安装方案 https://github.com/super1207/install_llob/rel…

LLMs——扩展数据受限的语言模型解决方案

概述 在自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;大型语言模型的发展一直是研究的热点。这些模型通过增加参数数量和训练数据量来提升性能&#xff0c;但这种增长趋势是否会有一个极限&#xff1f;实际上&#xff0c;研究者们已经注意到&#xff0c;为了有效地…

go语言触发浏览器打开网址程序实例

在Go语言中&#xff0c;触发浏览器打开特定的网址通常涉及调用操作系统的命令行工具来启动默认的浏览器并导航到指定的URL。 示例&#xff1a; package main import ( "fmt" "os/exec" "runtime" ) func main() { url : "https:/…

大话设计模式-依赖倒转原则

依赖倒转原则 在大话设计模式这本书中&#xff0c;作者通过电话修电脑这个例子引入了面向对象设计的基本原则之一&#xff1a;依赖倒转原则。 概念 依赖倒转原则是面向对象设计的基本原则之一&#xff0c;它用于减少类之间的耦合&#xff0c;提高系统的灵活性和可维护性。在…