谷粒商城实战笔记-62-商品服务-API-品牌管理-OSS整合测试
文章目录
- 一,Java中上传文件到阿里云OSS
- 1,整合阿里云OSS
- 2,测试上传文件
- 二,Java中整合阿里云OSS服务指南
- 引言
- 准备工作
- 1. 注册阿里云账号
- 2. 获取Access Key
- 3. 添加依赖
- 实现OSS客户端
- 1. 初始化OSSClient
- 2. 创建Bucket
- 3. 上传文件
- 4. 下载文件
- 5. 删除文件
- 最佳实践
- 结语
一,Java中上传文件到阿里云OSS
1,整合阿里云OSS
product模块中添加OSS依赖。
<dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.17.4</version>
</dependency>
2,测试上传文件
public void testUpload() throws ClientException {// Endpoint以华东1(杭州)为例,其它Region请按实际情况填写。String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";// 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();// 填写Bucket名称,例如examplebucket。String bucketName = "gulimallfuck";// 填写Object完整路径,完整路径中不能包含Bucket名称,例如exampledir/exampleobject.txt。String objectName = "1234.png";// 填写本地文件的完整路径,例如D:\\localpath\\examplefile.txt。// 如果未指定本地路径,则默认从示例程序所属项目对应本地路径中上传文件。String filePath= "C:\\Users\\Lenovo\\Desktop\\1.png";// 创建OSSClient实例。String accessKeyID = "LTAI5tCxH6terewer5dzq7uau";String accessKeySecret = "fzQdfdsfdfaffdffaRopvBC40d1202jgb";OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyID, accessKeySecret);try {// 创建PutObjectRequest对象。PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, objectName, new File(filePath));// 上传文件。PutObjectResult result = ossClient.putObject(putObjectRequest);} catch (Exception oe) {oe.printStackTrace();}}
这是OSS参考文档中的代码,需要修改的地方:
- endpoint

在OSS控制台查找endpoint。

- accessKeySecret 和 accessKeyId
阿里云控制台,鼠标移至右上角头像处。

下列弹窗点击AccessKey 管理,进入一个页面后会有如下弹窗,选择开始使用子用户。

创建用户。

在用户列表中点击刚创建的用户,进入新界面,点击创建AccessKey。

- 选择一个文件,在代码中配置路径。

运行测试用例,上传文件。
上传完成后,在文件列表中,可以看到刚刚上传的文件。

二,Java中整合阿里云OSS服务指南
引言
随着云计算的发展,越来越多的应用选择将数据存储在云服务提供商的平台上。阿里云对象存储服务(Object Storage Service,简称OSS)提供了简单高效、安全可靠、低成本的数据存储服务,非常适合存储大量图片、视频、日志数据等非结构化数据。
本文将指导你如何在Java项目中整合阿里云OSS服务,实现文件的上传、下载等功能,并给出一些最佳实践建议。
准备工作
1. 注册阿里云账号
如果你还没有阿里云账号,首先需要注册一个。注册完成后,你可以访问阿里云控制台,并在其中创建OSS Bucket。
2. 获取Access Key
为了能够使用OSS API,你需要获取Access Key ID 和 Access Key Secret。这些密钥用于身份验证,确保只有授权的用户才能访问你的Bucket。
- 登录阿里云RAM控制台。
- 进入AccessKey管理页面。
- 创建新的Access Key并保存好Access Key ID 和 Access Key Secret。
3. 添加依赖
为了方便地使用OSS SDK,我们需要在项目中引入相应的依赖。如果你使用的是Maven,可以在pom.xml文件中加入以下依赖:
<dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.10.3</version>
</dependency>
如果你使用Gradle,可以添加如下依赖:
dependencies {implementation 'com.aliyun.oss:aliyun-sdk-oss:3.10.3'
}
实现OSS客户端
1. 初始化OSSClient
创建一个OSSClient实例来连接OSS服务。这个实例是线程安全的,可以在应用程序中重复使用。
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;public class OSSClientUtil {private static final String endpoint = "YourEndpoint"; // 替换为你所在区域的endpointprivate static final String accessKeyId = "YourAccessKeyId";private static final String accessKeySecret = "YourAccessKeySecret";public static OSS getInstance() {return new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);}
}
2. 创建Bucket
创建Bucket是使用OSS服务的第一步。你可以使用createBucket方法来创建一个新的Bucket。
public void createBucket(String bucketName) {OSS ossClient = OSSClientUtil.getInstance();if (!ossClient.doesBucketExist(bucketName)) {ossClient.createBucket(bucketName);}ossClient.shutdown();
}
3. 上传文件
使用putObject方法可以将本地文件上传到指定的Bucket中。
public void uploadFile(String bucketName, String objectName, File file) {OSS ossClient = OSSClientUtil.getInstance();ossClient.putObject(bucketName, objectName, file);ossClient.shutdown();
}
4. 下载文件
使用getObject方法可以从OSS中下载文件。
public void downloadFile(String bucketName, String objectName, File destFile) {OSS ossClient = OSSClientUtil.getInstance();ossClient.getObject(new GetObjectRequest(bucketName, objectName), destFile);ossClient.shutdown();
}
5. 删除文件
使用deleteObject方法可以删除指定的文件。
public void deleteFile(String bucketName, String objectName) {OSS ossClient = OSSClientUtil.getInstance();ossClient.deleteObject(bucketName, objectName);ossClient.shutdown();
}
最佳实践
- 安全性:确保Access Key ID 和 Access Key Secret的安全,避免泄露。
- 权限管理:使用RAM用户而非主账号的密钥,为不同的应用程序分配最小必要的权限。
- 异常处理:处理好网络中断、服务器不可达等情况下的异常。
- 日志记录:记录关键操作的日志以便追踪问题和审计。
- 成本控制:定期清理不再使用的文件,利用OSS生命周期管理策略自动转换存储类别或删除过期文件。
结语
通过上述步骤,你可以在Java项目中轻松地整合阿里云OSS服务,实现文件的上传、下载等功能。阿里云OSS提供了丰富的API和工具,可以根据你的业务需求进一步定制和扩展。
希望这篇博客能帮助你在Java项目中顺利整合阿里云OSS服务。如果有任何疑问或需要进一步的帮助,请随时提问!
相关文章:
谷粒商城实战笔记-62-商品服务-API-品牌管理-OSS整合测试
文章目录 一,Java中上传文件到阿里云OSS1,整合阿里云OSS2,测试上传文件 二,Java中整合阿里云OSS服务指南引言准备工作1. 注册阿里云账号2. 获取Access Key3. 添加依赖 实现OSS客户端1. 初始化OSSClient2. 创建Bucket3. 上传文件4.…...
linux c 递归锁的介绍
递归锁的递归特性确实只是对于持有锁的线程。当一个线程获取了递归锁后,它可以多次重复获取该锁,而不会导致自身阻塞或死锁。这是递归锁的重要特点,它允许同一个线程在已经持有锁的情况下,再次获取相同的锁。 然而,对…...
React好用的组件库有哪些
React好用的组件库有很多,它们各自具有不同的特点和优势,适用于不同的开发场景和需求。以下是一些受欢迎的React组件库及其特点: Material-UI(现更名为MUI) 特点:这是一个开源的React组件库,实…...
简单快捷!Yarn的安装与使用指南
Yarn 是由 Facebook (现 Meta) 开发的包管理工具。 今天,我将介绍如何使用 Yarn。 目录 Yarn 的官方网站 关于安装 版本确认 开始一个新项目(创建 package.json 文件) 安装软件包 升级包 运行脚本 执行包的命令 卸载包 总结 Yarn 的…...
【Django】前端技术-网页样式表CSS
文章目录 一、申明规则CSS的导入方式行内样式内部样式外部样式 二、CSS的选择器1. 基本选择器标签选择器: 选择一类标签 标签{}类选择器 class: 选择所有class属性一致的表情,跨标签.类名{}ID选择器:全局唯一 #id名{} 2.层次选择器…...
openssl req 详解
一、openssl req 该命令用于创建和处理PKCS#10格式的证书请求(certificate requests CSRs),也可以用来创建自签名证书( self-signed certificates)来当作根证书(root CAs)使用 -new 该选项用来…...
mysql各种锁总结
mysql全局锁 读锁(共享锁) 阻止其他用户更新,但允许他们读取数据。 写锁(排他锁) 阻止其他用户读取和更新数据。 全局锁场景:进行数据库备份 数据库备份 背景:备份数据肯定要保证数据一致…...
SpringSecurity--DelegatingFilterProxy工作流程
什么是 DelegatingFilterProxy? DelegatingFilterProxy 是 Spring 提供的一个特殊的过滤器,它起到了桥梁的作用,可以让你在 Spring 容器中管理 Servlet 容器中的过滤器。 为什么需要 DelegatingFilterProxy? 通常情况下&#x…...
GitHub每日最火火火项目(7.27)
1. 项目名称:meta - llama / llama3 项目介绍:这是 Meta Llama 3 的官方 GitHub 站点。目前尚不清楚该项目的具体功能和特点,但从名称推测,可能与 Llama 3 模型相关,或许涉及到模型的开发、训练或应用等方面。 项目地…...
git 学习总结
文章目录 一、 git 基础操作1、工作区2、暂存区3、本地仓库4、远程仓库 二、git 的本质三、分支git 命令总结 作者: baron 一、 git 基础操作 如图所示 git 总共有几个区域 工作区, 暂存区, 本地仓库, 远程仓库. 1、工作区 存放项目代码的地方,他有两种状态 Unm…...
《如何找到自己想做的事》
Arouse Enthusiasm, Give Scope to Skill, Explore The Essence *摘其两纸 我喜欢打篮球,并不是我真的喜欢这项运动,而是我喜欢团队竞技。我喜欢看书,并不是我真喜欢阅读,而是我想要了解世界运行逻辑。寻找热爱,探寻本…...
Vue中el的两种写法
大家好我是前端寄术区博主PleaSure乐事。今天了解到了Vue当中有关el的两种写法,记录下来与大家分享,希望对大家有所帮助。 方法一 解释 第一种方法我们直接用new创建并初始化一个新的 Vue 实例,并定义了 Vue 实例的数据对象,在给…...
ELK安装(Elasticsearch+Logstash+Kibana+Filebeat)
一、简介 1.1、软件简介 ELK其实是Elasticsearch,Logstash 和 Kibana三个产品的首字母缩写,这三款都是开源产品。 1.1.1、Elasticsearch简介 Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析…...
VScode使用Github Copilot插件时出现read ECONNREST问题的解决方法
文章目录 read ECONNREST查看是否仍是 Copilot 会员查看控制台输出网络连接问题浏览器设置问题笔者的话 read ECONNREST 最近使用 Copilot 时一直出现 read ECONNREST 问题,这个表示连接被对方重置了,就是说在读取数据时连接被关闭。 我首先怀疑是不是…...
充电桩浪涌保护方案—保障充电设施安全稳定运行的关键
在当今新能源汽车蓬勃发展的时代,充电桩作为电动汽车的“加油站”,其重要性不言而喻。然而,由于其复杂的电气环境和暴露于户外的特点,充电桩容易受到浪涌的影响。浪涌可能来自雷电、电网故障、大功率设备的启停等,对充…...
Python包管理工具pip
1、安装pip cmd管理员模式打开控制台 python -m pip install --upgrade pip 2、添加pip环境变量 pip 路径 C:\Users\1\AppData\Local\Programs\Python\Python312\Scripts...
最全国内13家DNS分享 解决网页被恶意跳转或无法打开问题
腾讯 DNS (DNSPod) 腾讯 DNS 是由 DNSPod 提供的公共免费 DNS 服务。DNSPod 已被腾讯收购,现在属于腾讯公司所有。该 DNS 服务稳定性和连通性良好,经测试在海外也可以使用。 DNSPod 提供了 IPv4、IPv6 DNS 和 DoT/DoH 服务。 IPv4 地址: 119.29.29.29…...
最新站长工具箱源码,拥有几百个功能,安装教程
最新站长工具箱源码,拥有几百个功能,安装教程 在 Docker 上运行 docker run -e LAFREGIONCN -e APPLANGzh_CN --name my-miaoda -v ~/.miaoda-docker:/root/.miaoda -d -p 0.0.0.0:39899:39899 codegentoolbox/laftools-linux-x64:latestNOTE: 默认端…...
【算法/训练】:动态规划(线性DP)
一、路径类 1. 字母收集 思路: 1、预处理 对输入的字符矩阵我们按照要求将其转换为数字分数,由于只能往下和往右走,因此走到(i,j)的位置要就是从(i - 1, j)往下走&#…...
计算巨头 Azure、AWS 和 GCP 的比较
云计算领域由三大主要参与者主导:Microsoft Azure、Amazon Web Services (AWS) 和 Google Cloud Platform (GCP)。每个平台都为希望利用云提供基础设施、平台服务等的企业提供强大的功能。在本文中,我们将深入探讨这些平台之间的差异,重点关注…...
AI超清画质增强镜像使用技巧:避免移动端适配的3个坑
AI超清画质增强镜像使用技巧:避免移动端适配的3个坑 1. 理解镜像的核心能力与限制 在移动端使用AI超清画质增强镜像前,必须清楚了解它能做什么、不能做什么。这个基于OpenCV EDSR模型的镜像,本质上是一个专注图像重建的轻量级服务。 1.1 核…...
藏在滴滴里的AI神器,轻松叫到“梦中情车”
【潮汐商业评论/文】在一线城市上班的00后小杨是个重度打车用户,从她滴滴会员常年v8就可见对打车的依赖程度。她住在城市远郊,工作日的通勤或是周末的聚会,她总习惯提前叫好车,对于车型她也有着自己的“小偏好”,总结就…...
从隔离到互联:工业现场中耐达讯自动化CC-Link IE转Modbus RTU实战指南
在工业自动化领域中,不同协议设备间的通信壁垒正成为智能制造的核心挑战之一。耐达讯自动化的CC-Link IE转Modbus RTU专用网关,通过硬件级协议转换技术,高效实现CC-Link IE高速以太网与Modbus RTU串口设备的无缝对接,帮助企业快速…...
Win10 LTSC 1809系统下Docker 4.0.0与CVAT 2.31.0的完美搭配:避坑指南与性能优化
Win10 LTSC 1809系统下Docker 4.0.0与CVAT 2.31.0的完美搭配:避坑指南与性能优化 在工业级计算机视觉标注领域,CVAT(Computer Vision Annotation Tool)凭借其开源特性和强大的标注功能,已成为许多研究团队的首选工具。…...
《计算机网络》再学习
1.TCP/IP与OSI模型1)TCP/IP模型应用层:为程序提供网络服务。协议:HTTP,DNS与FTP等传输层:提供端到端的通信服务,确保数据的可靠传输。协议:TCP与UDP网络层:负责数据包的路由与转发。…...
OpenCV图像预处理失效全解析,深度解读光照不均、反光伪影、亚像素抖动下的鲁棒代码实现
第一章:OpenCV图像预处理失效的典型工业场景综述在工业视觉检测系统中,OpenCV常被用作图像预处理的核心工具,但其默认参数与理想假设在真实产线环境中频繁失效。光照剧烈波动、镜头污损、金属反光、高速运动拖影以及低信噪比成像等物理约束&a…...
具身智能系统集成与计算效率优化路径探析
具身智能作为连接人工智能与物理世界的核心载体,通过融合感知、决策、执行等多模块实现自主交互,其系统集成的合理性与计算效率的高低,直接决定了智能体在复杂场景中的落地能力。当前,具身智能正从实验室走向产业化应用࿰…...
出海营销决战指南:从“流量过客”到“私域常客”的全局地图
2026 全球出海营销日历:如何在关键节点实现社媒私域流量的指数级增长?2026年,出海战场规则已变。粗放投放的红利耗尽,碎片化的渠道、敏感的风控与难以逾越的文化沟壑,正让每一分营销预算的效能急剧衰减。节点依旧汹涌&…...
等保测评必看!用组策略批量关闭445/139端口(域环境适用版)
企业域环境下批量关闭高危端口的组策略实战指南 在等保测评和日常安全运维中,445、139、135等端口因其历史漏洞和潜在风险,常被列为必须管控的高危端口。对于拥有数百甚至上千台终端的中大型企业来说,逐台手动配置不仅效率低下,更…...
华为MateBook D14安装Ubuntu16避坑指南:WiFi/蓝牙/触控板驱动一键搞定
华为MateBook D14安装Ubuntu 16.04驱动优化全攻略 华为MateBook D14作为一款高性价比轻薄本,在安装Ubuntu 16.04时可能会遇到WiFi、蓝牙和触控板驱动不兼容的问题。这主要源于硬件迭代速度远超Linux内核更新周期——你的笔记本搭载了新一代无线网卡和输入设备&#…...
