当前位置: 首页> 文旅> 艺术 > 阿里云对象存储OSS简单使用

阿里云对象存储OSS简单使用

时间:2025/7/9 4:19:56来源:https://blog.csdn.net/weixin_45972546/article/details/139429316 浏览次数:0次

文章目录

  • 概念
    • 基本概念
    • Bucket
  • 准备工作
  • 控制台操作对象存储OSS
  • Java客户端操作对象存储OSS
  • 参考来源

概念

基本概念

阿里云对象存储 OSS是一款海量、安全、低成本、高可靠的云存储服务,提供最高可达 99.995 % 的服务可用性。而且提供了多种存储类型,降低我们的存储成本。

Bucket

Bucket是管理文件的存储空间。可以创建多个Bucket达到隔离文件的目的

准备工作

  • 注册阿里云账号
    请参考这篇文章 注册阿里云账号
  • 个人实名认证
    请参考这篇文章 个人实名认证
  • 开通OSS服务

访问该链接 控制台快速入门,按步骤执行以下操作
在这里插入图片描述

控制台操作对象存储OSS

  • 从首页进入控制台
    在这里插入图片描述
    在这里插入图片描述

  • 创建存储空间
    在这里插入图片描述

  • 直接上传文件
    在这里插入图片描述
    在这里插入图片描述

  • 新建目录后并上传文件
    在这里插入图片描述
    在这里插入图片描述

  • 下载文件
    在这里插入图片描述

  • 删除文件
    在这里插入图片描述

Java客户端操作对象存储OSS

  • 创建AccessKey
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 创建一个maven工程
  • 配置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>
  • 创建Bucket
   /*** 测试创建Bucket*/public static void testCreateBucket() {// Endpoint以华北2(北京)为例,其它Region请按实际情况自己指定。String endpoint = "oss-cn-beijing.aliyuncs.com";// 使用代码嵌入的RAM用户的访问密钥配置访问凭证。String accessKeyId = ""; // 你的accessKeyIdString accessKeySecret = ""; // 你的accessKeySecretCredentialsProvider credentialsProvider = new DefaultCredentialProvider(accessKeyId, accessKeySecret);// 填写Bucket名称,例如examplebucket。Bucket名称在OSS范围内必须全局唯一。String bucketName = "";  // 你的Bucket// 创建OSSClient实例。OSS ossClient = new OSSClientBuilder().build(endpoint, credentialsProvider);try {// 创建存储空间。ossClient.createBucket(bucketName);} 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();}}}
  • 测试上传文件
    /*** 测试上传图片*/public static void testUploadFile() {// Endpoint以华北2(北京)为例,其它Region请按实际情况自己指定。String endpoint = "oss-cn-beijing.aliyuncs.com";// 使用代码嵌入的RAM用户的访问密钥配置访问凭证。String accessKeyId = ""; // 你的accessKeyIdString accessKeySecret = ""; // 你的accessKeySecretCredentialsProvider credentialsProvider = new DefaultCredentialProvider(accessKeyId, accessKeySecret);// 填写Bucket名称,例如examplebucket。String bucketName = "";  // 你的Bucket// 填写Object完整路径,例如exampledir/exampleobject.txt。Object完整路径中不能包含Bucket名称。String objectName = "20240604/测试.png";// 创建OSSClient实例。OSS ossClient = new OSSClientBuilder().build(endpoint, credentialsProvider);try {// 上传一张图片,指定本地图片路径ossClient.putObject(bucketName, objectName, new File("C:\\Users\\cmbsysadmin\\Desktop\\测试图片\\测试.png"));} 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();}}}
  • 测试下载文件
   /*** 测试下载文件*/public static void testDownFile() {// Endpoint以华北2(北京)为例,其它Region请按实际情况自己指定。String endpoint = "oss-cn-beijing.aliyuncs.com";// 使用代码嵌入的RAM用户的访问密钥配置访问凭证。String accessKeyId = ""; // 你的accessKeyIdString accessKeySecret = ""; // 你的accessKeySecretCredentialsProvider credentialsProvider = new DefaultCredentialProvider(accessKeyId, accessKeySecret);// 填写Bucket名称,例如examplebucket。String bucketName = "";  // 你的Bucket// 填写Object完整路径,例如exampledir/exampleobject.txt。Object完整路径中不能包含Bucket名称。String objectName = "20240604/测试.png";// 创建OSSClient实例。OSS ossClient = new OSSClientBuilder().build(endpoint, credentialsProvider);try {// 调用ossClient.getObject返回一个OSSObject实例,该实例包含文件内容及文件元数据。OSSObject ossObject = ossClient.getObject(bucketName, objectName);// 调用ossObject.getObjectContent获取文件输入流,可读取此输入流获取其内容。// 将文件下载到指定目录try (InputStream content = ossObject.getObjectContent();FileOutputStream fileOutputStream = new FileOutputStream("D:\\upload\\testFile\\测试.png");) {byte[] buffer = new byte[1024];int length = 0;while ((length = content.read(buffer)) != -1) {fileOutputStream.write(buffer, 0, length);}} catch (IOException e) {e.printStackTrace();}} 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();}}}
  • 测试删除文件
    /*** 测试删除文件*/public static void testDeleteFile() {// Endpoint以华北2(北京)为例,其它Region请按实际情况自己指定。String endpoint = "oss-cn-beijing.aliyuncs.com";// 使用代码嵌入的RAM用户的访问密钥配置访问凭证。String accessKeyId = ""; // 你的accessKeyIdString accessKeySecret = ""; // 你的accessKeySecretCredentialsProvider credentialsProvider = new DefaultCredentialProvider(accessKeyId, accessKeySecret);// 填写Bucket名称,例如examplebucket。String bucketName = ""; // 你的Bucket// 填写Object完整路径,例如exampledir/exampleobject.txt。Object完整路径中不能包含Bucket名称。String objectName = "20240604/测试.png";// 创建OSSClient实例。OSS ossClient = new OSSClientBuilder().build(endpoint, credentialsProvider);try {// 删除文件。ossClient.deleteObject(bucketName, objectName);} 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简单使用

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: