阿里云oss存储文件上传功能实现(保姆级教程)
先登录:
点击进入控制台

点击左上角导航栏按钮

搜索oss,点击进入

进入之后点击立即开通oss按钮,开通之后点击下图立即创建,弹出创建Bucket

填上Bucket名称,读写权限改为公共读。其他不变点击确定创建,完成之后点击进入Bucket

光标放到右上角头像,弹出AccessKey管理,点击进入,点击继续使用AccessKey

点击创建AccessKey,完成手机验证码验证

保存好AccessKey

左侧导航栏,点击sdk下载。找到java,点击查看小图标查看文档,再文档中心打开


找到java安装,将maven依赖坐标导入,pom.xml中。

<!--阿里云oss依赖坐标--><dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.15.1</version></dependency><dependency><groupId>javax.xml.bind</groupId><artifactId>jaxb-api</artifactId><version>2.3.1</version></dependency><dependency><groupId>javax.activation</groupId><artifactId>activation</artifactId><version>1.1.1</version></dependency><!-- no more than 2.3.3--><dependency><groupId>org.glassfish.jaxb</groupId><artifactId>jaxb-runtime</artifactId><version>2.3.3</version></dependency>
找到java简单上传,将上传字符串这个代码复制过来

测试类中建一个demo类

改代码:---->
/*endpoint是服务器的区域节点,将我们自己服务器的节点复制过来*/String endpoint = "https://oss-cn-beijing.aliyuncs.com";

//注释掉自带的定义的环境变量,用我们自己的AccessKey定义//EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();String ACCESS_KEY_ID="LTAI5tNGKYfsdhshhgs7GZ";String ACCESS_KEY_SECRET="UBMW01zF9AAtrhN7W4ZqBdTvyylD";
/*我们的bucket名称,我们之前自己定义的,填过来*/String bucketName = "god-626";
/*我们定义要存储的对象的名字*/String objectName = "123.png";
/*credentialsProvider被我们注释掉了,改成ACCESS_KEY_ID,ACCESS_KEY_SECRET*/OSS ossClient = new OSSClientBuilder().build(endpoint,ACCESS_KEY_ID,ACCESS_KEY_SECRET);try {// 填写字符串。String content = "Hello OSS,你好世界";// 创建PutObjectRequest对象。/*new 字符串输入流,改为new 文件输入流,加上我们定义的地址*/PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, objectName, new FileInputStream("C:\\Users\\19545\\Desktop\\files\\123.jpg"));
完整代码:
package com.lin.springboot01;import com.aliyun.oss.ClientException;
import com.aliyun.oss.OSS;
import com.aliyun.oss.common.auth.*;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.OSSException;
import com.aliyun.oss.model.PutObjectRequest;
import com.aliyun.oss.model.PutObjectResult;
import java.io.ByteArrayInputStream;
import java.io.FileInputStream;public class Demo {public static void main(String[] args) throws Exception {// Endpoint以华东1(杭州)为例,其它Region请按实际情况填写。/*endpoint是服务器的区域节点,将我们自己服务器的节点复制过来*/String endpoint = "https://oss-cn-beijing.aliyuncs.com";// 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。//注释掉自带的定义的环境变量,用我们自己的AccessKey定义//EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();String ACCESS_KEY_ID="LTAI5tNGgdsfdstVc1GH7GZ";String ACCESS_KEY_SECRET="UBMWQ01zsgsfdgsdgfBdTvyUDylD";// 填写Bucket名称,例如examplebucket。/*我们的bucket名称,我们之前自己定义的,填过来*/String bucketName = "god-626";// 填写Object完整路径,完整路径中不能包含Bucket名称,例如exampledir/exampleobject.txt。/*我们定义要存储的对象的名字*/String objectName = "123.png";// 创建OSSClient实例。/*credentialsProvider被我们注释掉了,改成ACCESS_KEY_ID,ACCESS_KEY_SECRET*/OSS ossClient = new OSSClientBuilder().build(endpoint,ACCESS_KEY_ID,ACCESS_KEY_SECRET);try {// 填写字符串。String content = "Hello OSS,你好世界";// 创建PutObjectRequest对象。/*new 字符串输入流,改为new 文件输入流,加上我们定义的地址*/PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, objectName, new FileInputStream("C:\\Users\\19545\\Desktop\\files\\123.jpg"));// 如果需要上传时设置存储类型和访问权限,请参考以下示例代码。// ObjectMetadata metadata = new ObjectMetadata();// metadata.setHeader(OSSHeaders.OSS_STORAGE_CLASS, StorageClass.Standard.toString());// metadata.setObjectAcl(CannedAccessControlList.Private);// putObjectRequest.setMetadata(metadata);// 上传字符串。PutObjectResult result = ossClient.putObject(putObjectRequest);} 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();}}}
}
完成,运行!

相关文章:
阿里云oss存储文件上传功能实现(保姆级教程)
先登录: 点击进入控制台 点击左上角导航栏按钮 搜索oss,点击进入 进入之后点击立即开通oss按钮,开通之后点击下图立即创建,弹出创建Bucket 填上Bucket名称,读写权限改为公共读。其他不变点击确定创建,完成…...
centos7配置 局域网自动解析hostname
这样可以让局域网别的电脑直接通过hostname来连接这台电脑。 如果不是windows系统,可以用hostname.local来连接 主要是用到了mdns的功能,需要安装nss-mdns。 vmware下nat模式下,宿主机也可以通过连接hostname使用。 yum install epel-releas…...
wireshark 过滤设置
gpt: Wireshark 是一个网络分析工具,可以用来捕获和分析网络数据包。你可以使用过滤器来筛选并查看你感兴趣的数据包。Wireshark 使用的是基于BPF(Berkeley Packet Filter)语法的过滤器。以下是一些常见的 Wireshark 过滤器设置:…...
SpringBoot-过滤器Filter+JWT令牌实现登录验证
登录校验-Filter 分析 过滤器Filter的快速入门以及使用细节我们已经介绍完了,接下来最后一步,我们需要使用过滤器Filter来完成案例当中的登录校验功能。 我们先来回顾下前面分析过的登录校验的基本流程: 要进入到后台管理系统,我…...
VMware——WindowServer2012R2环境安装mysql5.7.14解压版_互为主从(图解版)
目录 一、服务器信息二、192.168.132.35服务器上安装mysql(主)2.1、环境变量配置2.2、安装2.2.1、修改配置文件内容2.2.2、初始化mysql并指定超级用户密码2.2.3、安装mysql服务2.2.4、启动mysql服务2.2.5、登录用户管理及密码修改2.2.6、开启远程访问 三…...
python 实现蚁群算法(simpy带绘图)
这里使用了蚁群算法求解了旅行商问题,同时结合了simpy来绘图 选择下一个食物的函数为: probability[i] pheromone[self.now][self.not_to_foods[i]] ** pheromone_w (1 / distance[self.now][self.not_to_foods[i]]) ** distance_w 该条路概率权重该点…...
OpenAI 董事会宫斗始作俑者?一窥伊尔亚·苏茨克维内心世界
OpenAI 董事会闹剧应该是暂告一个段落了,Sam Altman和Greg Brockman等一众高管均已加入微软,还有员工写联名信逼宫董事会的戏码,关注度已经降下来了。 但是,这场宫斗闹剧的中心人物Ilya Sutskever大家关注度不算太高。他本人是纯粹的技术男,极少抛头露面透露其内心世界。…...
Android App 启动状态有几种?
startup state Android 启动状态(startup state)1.1、冷启动(Cold Start)1.2、温启动(Warm Start)1.3、热启动(Hot Start)1.4、后台启动(Background Start) 优…...
Spring Cloud Alibaba Sentinel 简单使用
Sentinel Sentinel 主要功能Sentinel 作用常见的流量控制算法计数器算法漏桶算法 令牌桶算法Sentinel 流量控制Sentinel 熔断Sentinel 基本使用添加依赖定义资源定义限流规则定义熔断规则如何判断熔断还是限流自定义 Sentinel 异常局部自定义异常全局自定义异常系统自定义异常…...
nvm切换node后,没有npm
当我们想要在不同的 Node.js 版本之间切换的时候,通常会使用 nvm(Node Version Manager) 来完成。但是,当我们在使用 nvm 切换 Node.js 版本的时候,可能会遇到没有 npm 的情况。这种情况通常发生在我们在新环境或者重新…...
Redis-高性能原理剖析
redis安装 下载地址:http://redis.io/download 安装步骤: # 安装gcc yum install gcc# 把下载好的redis-5.0.3.tar.gz放在/usr/local文件夹下,并解压 wget http://download.redis.io/releases/redis-5.0.3.tar.gz tar -zxvf redis-5.0.3.tar…...
ORA-00600 【3948】,ORA-00600 【3949】
前言 这个报错没有从ORA600那个tool中查到。 回顾 环境 环境是windows 11203 rac环境,非归档数据库 有部分数据文件建到了本地文件系统。目标是将部分数据文件通过switch to copy的形式移动到diskgroup里 流程 srvctl关闭双节点, 启动单节点到moun…...
flink 查看写入starrocks的数据量 总行数
针对该connector: https://github.com/StarRocks/docs.zh-cn/blob/main/loading/Flink-connector-starrocks.md...
全链路压测的步骤及重要性
全链路压测是一种系统性的性能测试方法,旨在模拟真实用户场景下的完整操作流程,全面评估软件系统在不同压力下的性能表现。这种测试方法对于保证应用程序的高可用性、稳定性和可扩展性至关重要。 1. 全链路压测概述 全链路压测是在模拟实际用户使用场景的…...
使用Python实现几种底层技术的数据结构
使用Python实现几种底层技术的数据结构 数据结构(data structure)是带有结构特性的数据元素的集合,它研究的是数据的逻辑结构和数据的物理结构以及它们之间的相互关系,并对这种结构定义相适应的运算,设计出相应的算法,并确保经过这…...
前端面试题【72道】
文章目录 1. 说说你对盒子模型的理解2. css选择器有哪些?优先级?哪些属性可以继承?3. 元素水平垂直居中的方法有哪些?如果元素不定宽高呢?4. 怎么理解回流跟重绘?什么场景下会触发?5. 什么是响应…...
OpenGL 绘制文本(QPainter)
文章目录 一、简介二、实现代码三、实现效果一、简介 OpenGL中并没有绘制文本的相关函数,因此这里仍然用的是Qt中的QPainter工具来绘制文本,但是其相关的定位这里仍然会用OpenGL中的坐标转换。这里对其也进行封装一下,方便后续使用。 二、实现代码 TextDrawable.h #ifndef T…...
windows电脑连接Android和iPhone真机调试
windows电脑连接Android和iPhone真机调试 目前用的是Hbuilder X编辑器,在正常情况下,Android手机需要在 "设置 ----> 更多设置 ----->关于手机 ------> 版本号(手指点击5-7下即可打开开发者模式)"(我的是vivo的…...
windows上 adb devices有设备 wsl上没有
终于解决了!!!! TAT,尝试了很多种办法。 比如WSL中的adb和Windows中的adb版本必须一致,一致也没用,比如使用 ln 建立链接也没用。 这个解决办法的前提是windows中的abd是好用的。 ●在windows…...
释放搜索潜力:基于Docker快速搭建ES语义检索系统(快速版),让信息尽在掌握
搜索推荐系统专栏简介:搜索推荐全流程讲解(召回粗排精排重排混排)、系统架构、常见问题、算法项目实战总结、技术细节以及项目实战(含码源) 专栏详细介绍:搜索推荐系统专栏简介:搜索推荐全流程讲解(召回粗排精排重排混排)、系统架构、常见问题、算法项目实战总结、技术…...
第19节 Node.js Express 框架
Express 是一个为Node.js设计的web开发框架,它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用,和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...
JavaSec-RCE
简介 RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景:Groovy代码注入 Groovy是一种基于JVM的动态语言,语法简洁,支持闭包、动态类型和Java互操作性,…...
黑马Mybatis
Mybatis 表现层:页面展示 业务层:逻辑处理 持久层:持久数据化保存 在这里插入图片描述 Mybatis快速入门  支持跨分布式客户端进行协作模型训练,而无需共享原始数据,这使其成为在互联和自动驾驶汽车 (CAV) 等领域保护隐私的机器学习的一种很有前途的方法。然而,最近的研究表明&…...
学校招生小程序源码介绍
基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...
自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...
C++.OpenGL (14/64)多光源(Multiple Lights)
多光源(Multiple Lights) 多光源渲染技术概览 #mermaid-svg-3L5e5gGn76TNh7Lq {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3L5e5gGn76TNh7Lq .error-icon{fill:#552222;}#mermaid-svg-3L5e5gGn76TNh7Lq .erro…...
JavaScript 数据类型详解
JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型(Primitive) 和 对象类型(Object) 两大类,共 8 种(ES11): 一、原始类型(7种) 1. undefined 定…...
计算机基础知识解析:从应用到架构的全面拆解
目录 前言 1、 计算机的应用领域:无处不在的数字助手 2、 计算机的进化史:从算盘到量子计算 3、计算机的分类:不止 “台式机和笔记本” 4、计算机的组件:硬件与软件的协同 4.1 硬件:五大核心部件 4.2 软件&#…...
BLEU评分:机器翻译质量评估的黄金标准
BLEU评分:机器翻译质量评估的黄金标准 1. 引言 在自然语言处理(NLP)领域,衡量一个机器翻译模型的性能至关重要。BLEU (Bilingual Evaluation Understudy) 作为一种自动化评估指标,自2002年由IBM的Kishore Papineni等人提出以来,…...
