2025年阿里云OSS的开通(保姆级)与配置及Java项目集成实战

🏷️ bat365台湾入口 ⏱️ 2025-11-12 17:55:27 👨‍🔧 admin 👁️ 3050 ⚡ 489
2025年阿里云OSS的开通(保姆级)与配置及Java项目集成实战

提示:本文详细讲解了阿里云OSS的开通流程、配置方法以及在Java项目中的集成与使用。通过本文,你将掌握如何快速上手阿里云OSS,并在实际项目中实现文件的高效存储与管理。

目录

前言

一、阿里云OSS的注册与开通

二、阿里云OSS的基本计费规则

三、OSS管理控制台的进入方式

四、存储空间(Bucket)的创建与配置

五、文件的上传与管理

六、创建AccessKey

七、Java项目中集成阿里云OSS

1. 添加依赖

2. 配置文件设置

3. 创建配置类

4. 创建工具类

5. 创建配置类

6.

总结

前言

提示:本文详细讲解了阿里云OSS的开通流程、配置方法以及在Java项目中的集成与使用。通过本文,你将掌握如何快速上手阿里云OSS,并在实际项目中实现文件的高效存储与管理。

在当今的互联网应用开发中,文件存储是一个至关重要的环节。阿里云对象存储OSS(Object Storage Service)凭借其高效、安全、可靠的特性,成为了众多开发者首选的存储解决方案。本文将带你一起探索阿里云OSS的开通、配置以及在Java项目中的应用。

一、阿里云OSS的注册与开通

进入阿里云官网:打开浏览器,输入网址:https://www.aliyun.com,进入阿里云官方网站。

登录账号:如果你已有阿里云账号,直接输入账号和密码登录;若没有,需先注册一个账号。

找到对象存储OSS:在官网导航栏中点击“产品”,在下拉菜单中找到“存储与CDN”,点击“对象存储OSS”。

立即开通:进入OSS产品页面,点击“立即开通”。新用户可选择免费试用,根据自身需求进行操作。

同意协议:点击使用后会弹出提示框,仔细阅读并同意相关协议,即可完成开通。新用户有试用期3个月

二、阿里云OSS的基本计费规则

点击使用后会弹出提示框,同意即可,试用的朋友可能需要认证

开通OSS服务以及创建Bucket操作是不收费的。

当你在Bucket中上传文件时,文件的存储空间是需要付费的,按实际使用量计费。

上传文件到Bucket产生的流量不收费。

若通过外网下载Bucket中的文件,外网出流量是需要付费的。

开通OSS传输加速功能不收费,但如果在传输过程中使用了加速功能,产生的传输加速流量是需要付费的。

三、OSS管理控制台的进入方式

开通服务后,有以下两种方式进入OSS管理控制台:

在OSS产品详情页面直接点击“管理控制台”,即可进入OSS管理控制台界面。

点击官网首页右上方菜单栏的“控制台”,进入阿里云管理控制台首页,再点击左侧的“对象存储OSS”菜单,进入OSS管理控制台界面。

四、存储空间(Bucket)的创建与配置

进入Bucket列表:在OSS管理控制台界面,点击左上角的栏目找到“Bucket列表”。

创建新的Bucket:点击“创建Bucket”,进入创建存储空间的页面。

配置存储空间信息:填写Bucket名称(需唯一且符合命名规则)、选择地域(根据用户访问量和数据存储需求选择合适的地域)、设置存储类型(如标准存储、低频访问存储等)、权限设置(可选择公共读写、公共只读或私有)等信息。

完成创建:点击“确定”完成Bucket的创建。

权限修改:为了方便后续项目访问,可根据需求对Bucket的权限进行调整。

五、文件的上传与管理

进入创建好的Bucket:在Bucket列表中点击刚创建的Bucket,进入其管理界面。

上传文件:点击“上传”,选择要上传的文件,可单个或批量上传。

查看文件信息:上传完成后,可在Bucket中看到上传的文件列表,点击文件可查看详细信息,包括文件名、大小、最后修改时间、存储路径等。

获取文件URL:点击文件的“图片详情信息”,可获取文件的访问URL,用于后续在项目中引用。

六、创建AccessKey

进入安全设置:登录阿里云账号,点击头像进入账号管理页面,找到“访问控制”选项。

创建AccessKey:在“访问控制”页面,找到“访问密钥”板块,点击“创建访问密钥”。

安全验证:勾选安全风险提示,点击“继续”,然后进行账号检查验证(可选择短信验证或密钥验证等方式)。

保存AccessKey:创建成功后,会显示AccessKey ID和AccessKey Secret,这是你的敏感信息,务必妥善保存,防止泄露。

七、Java项目中集成阿里云OSS

1. 添加依赖

在项目的pom.xml文件中添加阿里云OSS SDK依赖:

com.aliyun

aliyun-sdk-oss

3.13.0

2. 配置文件设置

在项目的application.yml或application.properties文件中添加阿里云OSS的相关配置:

sky:

alioss:

endpoint: oss-cn-beijing.aliyuncs.com # 根据实际创建的地域填写

access-key-id: your-access-key-id # 替换为你的AccessKey ID

access-key-secret: your-access-key-secret # 替换为你的AccessKey Secret

bucket-name: your-bucket-name # 替换为你的Bucket名称

spring:

profiles:

active: dev #设置环境

sky:

alioss:

endpoint: oss-cn-hangzhou.aliyuncs.com

access-key-id: LTAI5tPeFLzsPPT8gG3LPW64

access-key-secret: U6k1brOZ8gaOIXv3nXbulGTUzy6Pd7

bucket-name: sky-take-out

3. 创建配置类

创建AliOssProperties类,用于读取配置文件中的阿里云OSS相关属性:

package com.sky.properties;

import lombok.Data;

import org.springframework.boot.context.properties.ConfigurationProperties;

import org.springframework.stereotype.Component;

@Component

@ConfigurationProperties(prefix = "sky.alioss")

@Data

public class AliOssProperties {

private String endpoint;

private String accessKeyId;

private String accessKeySecret;

private String bucketName;

}

4. 创建工具类

创建AliOssUtil类,用于实现文件上传等功能:

package com.sky.utils;

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

@Slf4j

public class AliOssUtil {

private String endpoint;

private String accessKeyId;

private String accessKeySecret;

private String bucketName;

/**

* 文件上传

*

* @param bytes 文件字节数组

* @param objectName 文件在OSS中的存储名称

* @return 文件访问URL

*/

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();

}

}

//构建文件访问路径

StringBuilder stringBuilder = new StringBuilder("https://");

stringBuilder

.append(bucketName)

.append(".")

.append(endpoint)

.append("/")

.append(objectName);

log.info("文件上传到:{}", stringBuilder.toString());

return stringBuilder.toString();

}

}

5. 创建配置类

创建OssConfiguration类,用于创建AliOssUtil Bean:

package com.sky.config;

import com.sky.properties.AliOssProperties;

import com.sky.utils.AliOssUtil;

import lombok.extern.slf4j.Slf4j;

import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

/**

* 配置类,用于创建AliOSSUtil

*/

@Configuration

@Slf4j

public class OssConfiguration {

@Bean

@ConditionalOnMissingBean

public AliOssUtil aliOssUtil(AliOssProperties aliOssProperties) {

log.info("开始创建阿里云文件上传工具类:{}", aliOssProperties);

return new AliOssUtil(aliOssProperties.getEndpoint(),

aliOssProperties.getAccessKeyId(),

aliOssProperties.getAccessKeySecret(),

aliOssProperties.getBucketName());

}

}

6.定义接口

package com.sky.controller.admin;

import com.sky.constant.MessageConstant;

import com.sky.result.Result;

import com.sky.utils.AliOssUtil;

import io.swagger.annotations.Api;

import io.swagger.annotations.ApiOperation;

import lombok.extern.slf4j.Slf4j;

import org.springframework.beans.factory.annotation.Autowired;

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;

import java.util.UUID;

/**

* 通用接口:其它模块也可能用到文件上传

*/

@RestController

@RequestMapping("/admin/common")

@Api(tags = "通用接口")

@Slf4j

public class CommonController {

@Autowired

private AliOssUtil aliOssUtil;

/**

* 文件上传

* @param file

* @return

*/

@PostMapping("/upload")

@ApiOperation("文件上传")

/**

* 为什么泛型指定为String类型???

* 由接口文档可知,返回的Result中data属性值是 文件上传到阿里云后的url地址 类型为String类型

*

* 通过MultipartFile 类型来接收上传的文件,要求方法的形参名和表单项的name属性的值/前端提交的参数名(

* 由接口文档可知参数名为file)一致,如果不一致使用@requesrparam注解进行参数绑定

*/

public Result upload(MultipartFile file){

log.info("文件上传:{}",file);

try {

//原始文件名

String originalFilename = file.getOriginalFilename();

//截取原始文件名的后缀 dfdfdf.png

String extension = originalFilename.substring(originalFilename.lastIndexOf("."));

//构造新文件名称:防止上传到阿里云的文件,因为名字重复导致覆盖的问题

String objectName = UUID.randomUUID().toString() + extension;

//文件的请求路径

//参数: byte数组,文件对象转成的数组 传上去的图片在阿里云存储空间里面的名字

String filePath = aliOssUtil.upload(file.getBytes(), objectName);

return Result.success(filePath);

} catch (IOException e) {

log.error("文件上传失败:{}", e);

}

return Result.error(MessageConstant.UPLOAD_FAILED);

}

}

总结

本文详细学习了阿里云OSS的开通流程、配置方法以及在Java项目中的集成与使用。从注册账号、开通服务,到创建存储空间、上传文件,再到获取AccessKey并在Java项目中进行相关配置和代码实现,每一步都进行了清晰的讲解。在实际项目开发中,合理利用阿里云OSS能够有效解决文件存储问题,提高应用的性能和可靠性。希望本文能为你的开发工作提供有价值的参考,帮助你更好地运用阿里云OSS进行文件存储与管理。

相关资讯

世界杯战报
神器365软件下载

世界杯战报

📅 06-28 🔧 admin
微博app怎么改水印位置 微博改水印位置教程
bat365台湾入口

微博app怎么改水印位置 微博改水印位置教程

📅 07-16 🔧 admin
米色风衣搭配什么鞋 6种搭配法让你各种风格随意切换
365娱乐app官方版下载106平台

米色风衣搭配什么鞋 6种搭配法让你各种风格随意切换

📅 10-06 🔧 admin