什么是oss存储
OSS存储指的是对象存储服务(Object Storage Service),这是一种存储架构用于处理和管理数据存储作为“对象”的服务。OSS是一种高度可扩展的存储解决方案,它允许用户在云中存储、访问和管理大量的非结构化数据。对象存储服务非常适合存储任何形式的静态内容,包括文档、音频、视频、图像和大数据集。
步骤 1: 创建OSS实例和存储空间(Bucket)
-
在阿里云控制台中开通“对象存储OSS”服务。
-
创建存储空间(Bucket),选择 所在地域 等。需要确保Bucket名称是唯一的,且一旦设置后不可修改。
-
设置访问权限为公共读或私有,取决于你的需求。
-
点击“确定”创建。
步骤 2:创建访问密钥(AccessKey)
1.把鼠标放在右上角头像上,点AccessKey管理。
2.创建AccessKey,复制保存 AccessKey ID 和 AccessKey Secret。
步骤 3: 配置阿里云访问密钥环境变量
为了能够访问你的 OSS 资源,你需要配置阿里云的 AccessKey ID 和 AccessKey Secret,可以使用环境变量或其他安全方式来存储这些敏感数据。***(如果配置后项目没效果,记得重启,不然读不到配的变量)***
-
打开电脑环境变量配置:
-
新建两个用户变量:
变量名:
OSS_ACCESS_KEY_ID
变量值:
AccessKey ID
(阿里云中AccessKey管理中获取)
变量名:OSS_ACCESS_KEY_SECRET
变量值:AccessKey Secret
(阿里云中AccessKey管理中获取)
步骤 4: 创建 Java 项目
步骤 5: 添加阿里云 OSS SDK 依赖
-
打开
pom.xml
文件。 -
在
<dependencies>
部分添加以下依赖:
<dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId> <version>3.11.0</version> </dependency>
步骤 6: 编写上传代码
import com.aliyun.oss.OSS; import com.aliyun.oss.OSSClientBuilder; import com.aliyun.oss.common.auth.CredentialsProviderFactory; import com.aliyun.oss.common.auth.EnvironmentVariableCredentialsProvider; import com.aliyuncs.exceptions.ClientException; import java.io.FileInputStream; import java.io.FileNotFoundException; public class UploadImageToOSS { public static void main(String[] args) throws ClientException { // 阿里云OSS服务的Endpoint。服务的访问域名,指定了阿里云OSS服务的网络节点 //把beijing改成自己配置的地域就ok了 String endpoint = "http://oss-cn-beijing.aliyuncs.com"; // 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。 EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider(); // 你的阿里云OSS存储桶名称。填写Bucket名称, String bucketName = "xin-qiu"; // OSS中的文件键(Key),即上传后的文件名。 String fileKey = "h.jpg"; // 保存到OSS的文件名 // 本地系统中的文件路径,用于找到你想上传的文件。 String filePath = "C:\\Users\\DELL\\OneDrive\\桌面\\图片\\二次元\\h.jpg"; // 本地文件路径 // 使用OSSClientBuilder构建一个OSS客户端实例。 OSS ossClient = new OSSClientBuilder().build(endpoint,credentialsProvider); try { // 创建一个文件输入流,用于读取本地文件。 FileInputStream inputStream = new FileInputStream(filePath); // 调用OSS客户端的putObject方法上传文件。传入存储桶名、文件键和文件输入流。 ossClient.putObject(bucketName, fileKey, inputStream); System.out.println("上传成功"); } catch (FileNotFoundException e) { System.out.println("文件未找到:" + e.getMessage()); } finally { // 最终,无论上传成功还是失败,都关闭OSS客户端实例以释放资源。 ossClient.shutdown(); } } }