当前位置: 首页 > news >正文

基于Springboot免费搭载轻量级阿里云OSS数据存储库(将本地文本、照片、视频、音频等上传云服务保存)

一、注册阿里云账户

打开https://www.aliyun.com/,申请阿里云账户并完成实名认证(个人)。这种情况就是完成了:

二、开通OSS服务

点击立即开通即可。

三、创建Bucket

 申请id和secert:

 进去创建一个Accesskey就会出现以下信息:

这里的accesskeyid和secret需要填入到五的Demo代码中。 记得保存

四、引入依赖

在pom.xml引入阿里云oss的依赖:

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

如果是java9以及之后的版本,则需要多引入几个依赖:

        <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>

之后点击maven图标进行更新 :

 五、测试

新建一个测试类Demo:

在Demo类中输入以下代码:

package com.bytedance; // 这里修改自己的包名
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.File;
public class Demo {public static void main(String[] args) throws Exception {// Endpoint以华东1(杭州)为例,其它Region请按实际情况填写。String endpoint = "https://oss-cn-beijing.aliyuncs.com";String accessKeyId = "LTAl5tQbQfs63bRv8Ru4nKgM";String accessKeySecret = "ek5VsOfXdNmKVE0uYH809C1YWcB0yt";// 填写Bucket名称,例如examplebucket。String bucketName = "mybatiss-tlias";// 填写Object完整路径,完整路径中不能包含Bucket名称,例如exampledir/exampleobject.txt。String objectName = "clippers.png";// 填写本地文件的完整路径,例如D:\\localpath\\examplefile.txt。// 如果未指定本地路径,则默认从示例程序所属项目对应本地路径中上传文件。String filePath= "C:\\Users\\Wyyy\\Desktop\\220\\v2-f71dc37e2c4f2d2b01dd7d19862e637a_720w.png";// 创建OSSClient实例。OSS ossClient = new OSSClientBuilder().build(endpoint,accessKeyId,accessKeySecret);try {// 创建PutObjectRequest对象。PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, objectName, new File(filePath));// 如果需要上传时设置存储类型和访问权限,请参考以下示例代码。// 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();}}}
}

 代码中的endpoint在这里查看:

 objectname是上传之后的图片名字,filepath是需要上传的照片在本地的存储位置。

点击运行测试:

 最后我们发现需要传的图片已经传上去啦~

PS:快船总冠军!

小案例:基于阿里云OSS上传图片实战案例-CSDN博客

相关文章:

  • 揭秘共享旅游卡项目变现的6种方式,至少有4种适合创业者!
  • STM32/GD32——I2C通信协议
  • Nodejs web服务器之GET、POST请求初次体验
  • 2024《》
  • 论文研读_多目标部署优化:无人机在能源高效无线覆盖中的应用(ImMOGWO)精简版
  • 100个Linux操作命令和20个常用脚本
  • docker中的具名和匿名挂载
  • MySQL CTEs通用表表达式:进阶学习-递归查询
  • Qt将Unicode转换成UTF8中文
  • 哈希专题 - leetcode 1. 两数之和 - 简单难度
  • 代码随想录算法训练营day47|第九章 动态规划part09:198.打家劫舍、213.打家劫舍II、337.打家劫舍III
  • 掌握 Vue3、Vite 和 SCSS 实现一键换肤的魔法步骤
  • 基于redis实现用户登陆
  • 【Python爬虫实战】抓取省市级城市常务会议内容
  • 基于VUE3搭建项目步骤
  • CentOS从零开始部署Nodejs项目
  • Fundebug计费标准解释:事件数是如何定义的?
  • in typeof instanceof ===这些运算符有什么作用
  • input的行数自动增减
  • JDK9: 集成 Jshell 和 Maven 项目.
  • Js基础——数据类型之Null和Undefined
  • Laravel5.4 Queues队列学习
  • Object.assign方法不能实现深复制
  • Python实现BT种子转化为磁力链接【实战】
  • React系列之 Redux 架构模式
  • Travix是如何部署应用程序到Kubernetes上的
  • unity如何实现一个固定宽度的orthagraphic相机
  • Vue2.x学习三:事件处理生命周期钩子
  • 第13期 DApp 榜单 :来,吃我这波安利
  • 服务器从安装到部署全过程(二)
  • 两列自适应布局方案整理
  • 面试总结JavaScript篇
  • 通过几道题目学习二叉搜索树
  • 我的业余项目总结
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • 小白应该如何快速入门阿里云服务器,新手使用ECS的方法 ...
  • #传输# #传输数据判断#
  • #中国IT界的第一本漂流日记 传递IT正能量# 【分享得“IT漂友”勋章】
  • (Matlab)基于蝙蝠算法实现电力系统经济调度
  • (pt可视化)利用torch的make_grid进行张量可视化
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (介绍与使用)物联网NodeMCUESP8266(ESP-12F)连接新版onenet mqtt协议实现上传数据(温湿度)和下发指令(控制LED灯)
  • (七)理解angular中的module和injector,即依赖注入
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • (转)从零实现3D图像引擎:(8)参数化直线与3D平面函数库
  • (转)自己动手搭建Nginx+memcache+xdebug+php运行环境绿色版 For windows版
  • .NET 2.0中新增的一些TryGet,TryParse等方法
  • .netcore 如何获取系统中所有session_ASP.NET Core如何解决分布式Session一致性问题
  • [ 渗透工具篇 ] 一篇文章让你掌握神奇的shuize -- 信息收集自动化工具
  • [2018/11/18] Java数据结构(2) 简单排序 冒泡排序 选择排序 插入排序
  • [AI]文心一言出圈的同时,NLP处理下的ChatGPT-4.5最新资讯
  • [BUUCTF 2018]Online Tool
  • [C# 开发技巧]实现属于自己的截图工具
  • [C#7] 1.Tuples(元组)