阿里云的OSS云存储的使用

2023-11-09

阿里云官网:https://www.aliyun.com/

通过阿里云官网,登录进入用户的界面,在搜索框中输入OSS,然后进入阿里云的对象存储OSS的控制台。(未开通的开通即可)

创建 Bucket

点击【Bucket 列表】,查看个人的Bucket。点击【创建 Bucket】,创建新的 Bucket。其中必填项有:

  • Bucket 名称:唯一的就行
  • 地域:选择一个近的就行,例如华南1(深圳)
  • 存储类型:选择【标准存储】
  • 读写权限:选择【公共读】
  • 其他选项:默认

点击【确定】,即可创建。

上传文件

可以通过【文件管理】中【文件列表】进行上传文件

点击【上传文件】,即可上传指定文件到OSS中。

选择上传文件,步骤如图。除了上传文件外,还可以上传文件夹。

点击【上传文件】后,通过【任务列表】可以查看上传的文件情况。

之后,可以在【文件列表】中查看上传的文件,且可以点击【详情】查看文件的信息。

在【详情】中,可以注意到文件有一个URL地址,我们可以通过这个地址下载该文件。

配置RAM用户

如果想要在开发中进行操作阿里云OSS云存储的文件,那么需要配置 RAM。配置的具体操作如下。

点击【账户头像】,找到【AccessKey 管理】。

点击【AccessKey 管理】,进入RAM 访问控制台,注意选择【使用子用户】。

进入【RAM 访问控制】,点击【用户】。可以通过【创建用户】来新建一个用户。

创建用户并获取key值

新建用户,输入登录名称和显示名称,访问方式选择【Open API 调用访问】。

选择【Open API 调用访问】的访问方式是,会自动的生成【AccessKey ID】和【AccessKey Secret】,但在生成时,会验证是否是你本人,阿里云提供了两种认证方式:手机验证码拍摄脸部

这里选择【手机验证码】的方式进行认证。

点击【确定】后,就会生成用户的【AccessKey ID】和【AccessKey Secret】。这里需要将其记住,以便后面开发中使用。

AccessKey ID:LTAI5t9v9PdmFp4HkkHS1599

AccessKey Secret:YAM1HBvHOUcKdtGq7vWsrzRRGCJNkG

点击【返回】,到此,用户就创建完毕。

创建完用户后,需要在用户中添加权限才能使用,否则就不能使用。

设置用户权限

点击用户【操作】下的【添加权限】。通过搜索【oss】,搜索所有支持OSS的权限,然后选择阿里云的OSS。

点击【确定】,然后用户就添加了阿里云的OSS云储存权限。再点击【完成】,即可完成配置。

OSS的使用

可以通过阿里云OSS控制台下的【常用入口】的【OSS学习路径】来学习怎么使用OSS。

因为我是在 Java 开发中使用的,所以就点击【Java SDK】。

众所周知,要使用一个工具时,第一步应该是安装它。所以进入【Java SDK】后,直接点击【SDK示例】下的【Java】->【安装】。通过【安装】中的文件描述,可选择你的安装的方式。

Java中使用OSS

查阅官方文档可知,Java 开发中使用阿里云的 OSS 云存储,第一步是先引入相关依赖。然后再进行其他操作,下面通过一个案例来简单的使用阿里云的 OSS 云存储。

创建工程

通过 IDEA 工具,新建一个名为 aliyun-oss 工程的 maven 项目。

IDEA工具:File -> New -> Project ->Maven。

引入依赖

在 pom.xml 文件下引入阿里云的 OSS 云存储依赖,因为需要使用单元测试,所以这里引入了 junit 依赖。

<dependencies>
  <!--oss依赖-->
  <dependency>
    <groupId>com.aliyun.oss</groupId>
    <artifactId>aliyun-sdk-oss</artifactId>
    <version>3.10.2</version>
  </dependency>
  <!--junit测试-->
  <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.13</version>
  </dependency>
</dependencies>

新建OSSClient

OSSClient 是 OSS 的 Java 客户端,用于管理存储空间和文件等 OSS 资源。使用 Java SDK 发起 OSS请求,需要初始化一个 OSSClient 实例,并根据需要修改 ClientConfiguration 的默认配置项。

在官网中,提供了很多种新建 OSSClient 的方法,而在新建 OSSClient 时,需要指定 Endpoint(地域节点)。而 Endpoint 可以在OSS 用户的概览中获取。

创建 OSSTest 测试类,创建一个存储空间。

public class OSSTest {
    
    @Test
    public void test() {
        //地域节点(Endpoint)的配置
        String endpoint = "oss-cn-shenzhen.aliyuncs.com";
        
        //RAM子用户的key值
        String accessKeyId = "LTAI5t9v9PdmFp4HkkHS1599";
        String accessKeySecret = "YAM1HBvHOUcKdtGq7vWsrzRRGCJNkG";
        
        //声明OSS云存储的Bucket名称。
        String bucketName = "oss-filetest-01";
        
        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
        
        // 创建存储空间。
        ossClient.createBucket(bucketName);
        
        // 关闭OSSClient。
        ossClient.shutdown();
    }
}

Bucket的命名规范如下:

  • ① 只能包括小写字母、数字和短横线(-)
  • ② 必须以小写字母或者数字开头;
  • ③ 长度必须在 3-63 字节之间。

下面是一种命名的错误情况:

通过查看阿里云的OSS云存储的Bucket列表,可以看到【Bucket列表】中,创建了【oss-filetest-01】存储空间。

通过查看【oss-filetest-01】的概览可知,创建的存储空间是使用默认值的,比如存储空间的访问权限是私有的等。

获取OSS的访问权限

可以通过代码获取存储空间的访问权限。

public class OSSTest {
    ...
	@Test
    public void getBucketAclTest() {
        //地域节点(Endpoint)的配置
        String endpoint = "oss-cn-shenzhen.aliyuncs.com";

        //RAM子用户的key值
        String accessKeyId = "LTAI5t9v9PdmFp4HkkHS1599";
        String accessKeySecret = "YAM1HBvHOUcKdtGq7vWsrzRRGCJNkG";

        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

        //指定查询的存储空间的Bucket名。
        String bucketName = "oss-filetest-01";
        // 获取存储空间的访问权限。
        AccessControlList bucketAcl = ossClient.getBucketAcl(bucketName);
        System.out.println(bucketAcl);

        // 关闭OSSClient。
        ossClient.shutdown();
    }
}

运行结果

设置OSS的访问权限

除了获取存储空间的访问权限外,还可以设置存储空间的访问权限。

public class OSSTest {
    ...
	@Test
    public void setBucketAclTest() {
        //地域节点(Endpoint)的配置
        String endpoint = "oss-cn-shenzhen.aliyuncs.com";

        //RAM子用户的key值
        String accessKeyId = "LTAI5t9v9PdmFp4HkkHS1599";
        String accessKeySecret = "YAM1HBvHOUcKdtGq7vWsrzRRGCJNkG";

        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

        //指定查询的存储空间的Bucket名。
        String bucketName = "oss-filetest-01";

        // 设置存储空间的访问权限
        ossClient.setBucketAcl(bucketName, CannedAccessControlList.PublicRead);

        // 获取存储空间的访问权限
        AccessControlList bucketAcl = ossClient.getBucketAcl(bucketName);
        System.out.println(bucketAcl);

        // 关闭OSSClient。
        ossClient.shutdown();
    }
}

查看存储空间的概览可知,存储空间的访问权限已经被修改为公共读。

阿里云的OSS云存储的访问权限有如下三种:

取值

描述

方法

私有

存储空间的拥有者和授权用户有该存储空间内的文件的读写权限,其他用户没有权限操作该存储空间内的文件。

CannedAccessControlList.Private

公共读

存储空间的拥有者和授权用户有该存储空间内的文件的读写权限,其他用户只有该存储空间内的文件的读权限。请谨慎使用该权限。

CannedAccessControlList.PublicRead

公共读写

所有用户都有该存储空间内的文件的读写权限。请谨慎使用该权限。

CannedAccessControlList.PublicReadWrite

判断存储空间是否存在

使用 doesBucketExist() 方法判断存储空间是否存在。

public class OSSTest {
    ...
	@Test
    public void doesBucketExistTest() {
        //地域节点(Endpoint)的配置
        String endpoint = "oss-cn-shenzhen.aliyuncs.com";

        //RAM子用户的key值
        String accessKeyId = "LTAI5t9v9PdmFp4HkkHS1599";
        String accessKeySecret = "YAM1HBvHOUcKdtGq7vWsrzRRGCJNkG";

        // 创建OSSClient实例。
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

        //指定查询的存储空间的Bucket名。
        String bucketName = "oss-filetest-01";

        // 判断指定的存储空间是否存在。若存在返回true,不存在返回false
        boolean exist = ossClient.doesBucketExist(bucketName);
        System.out.println(exist);

        // 关闭OSSClient。
        ossClient.shutdown();
    }
}

运行结果

关于OSS的其他相关运用,可以通过查询官方文档进行测试,这里不再测试。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

阿里云的OSS云存储的使用 的相关文章

随机推荐

  • 【华为OD】

    华为OD试题注意事项 使用合适的编程语言 在华为OD机试中多数情况下使用C 或Java 按照题目要求进行编码 仔细阅读题目描述并理解要求 在编码前可以进行伪代码编写或画流程图有助于理解和排除逻辑错误 注意代码的规范性 注重代码的可读性和可维
  • 服务器如何存储文件夹在哪,ecs云服务器如何存储文件夹

    ecs云服务器如何存储文件夹 内容精选 换一换 华为云帮助中心 为用户提供产品简介 价格说明 购买指南 用户指南 API参考 最佳实践 常见问题 视频帮助等技术文档 帮助您快速上手使用华为云服务 按需购买的两台同类型弹性云服务器 操作系统类
  • 实用tcpdump命令 【转】

    文章来源 实用tcpdump命令 查看本机与mysql的操作命令 注意 i any表示监听所有网络接口 我们也根据自身情况选择网络接口 tcpdump i any w dst port 3306 strings 查看本机58895上与mys
  • 解决bug:Error creating bean with name 'webHandler' defined in class

    今天写代码 用到了 Spring Boot Admin 这是一个管理和监控的开源监控软件 但是今天一运行就报以下错误 Error creating bean with name webHandler defined in class wha
  • vue-message-simulate

    vue message simulate a light plugin of vue it simulates alert confrim model 依赖于sass 切 不支持ie9 一下的版本 使用如下 下载之后 在main js中 1
  • 如何在 Linux 中设置或更改系统主机名

    博学谷提供技术支持 主机名能帮助人们轻松的识别网络中的机器 单独运行hostname 不带任何参数 将返回 Linux 系统的当前主机名 如下所示 hostname TecMint 如果想更改 Linux 系统的主机名 只需运行 hostn
  • 测试用例设计-X云

    测试用例概述 测试用例设计方法 1 先对符合规则的设计一条用例 等价类方法 12个字符符合6 18个长度 不符合规则的 lt 6的字符 gt 18个字符 考虑边界值 我记得以前是考虑一个条件 另一个条件选有效等价类即可 这里考虑两个三件 那
  • java中String+String与StringBuilder的append()方法的效率问题

    因为上一次的A题过程中 发现String的 总是超时 后来用到了append 方法 就过了 发现两者的效率存在很大的区别 测试如下 public static void main String args TODO 自动生成的方法存根 Str
  • 无向图的深度优先遍历非递归_数据结构-图(图的基本实现C++)

    一 图的概念 图是一种比较复杂的非线性数据结构 图 Graph 是由顶点的有穷非空集合和顶点之间边的集合组成 通常表示为 G V E 其中 G表示一个图 V是图G中顶点的集合 E是图G中边的集合 图区分有向图和无向图 1 无向图 Undir
  • 编写程序,实现利用while循环和for循环属输出100以内偶数的功能。

    实现利用while循环属输出100以内偶数的功能 1 使用whlie编写 i 1 while i lt 100 i 1 if i 2 gt 0 continue print i end print 输出结果 2 4 6 8 10 12 14
  • 计算机科研立项应用类题目,《科研立项题目举例》.doc

    科研立项题目举例 计算机技术在其发展过程中形成两个重要分支 通用计算机领域 现在以Pc机为代表 着重发展海量高速数值运算技术 而其控制能力是有限的 嵌入式计算机领域 现在以单片机为代表 着重发展计算机的控制技术 而其计算机速度是有限的 在目
  • 小白学《HTML5网页开发实例详解》连载三(DOCTYPE和字符集)

    在2 1 2节中通过新老DOCTYPE的对比 读者可以清晰地看到HTML 5在精简旧有结构上做出的努力 DOCTYPE在出现之初主要用于XML中 用作描述XML允许使用的元素 属性和排列方式 起初HTML借鉴了XML中DOCTYPE的使用方
  • 使用OpenCV和Python生成视频条形码

    使用OpenCV和Python生成视频条形码 1 效果图 2 原理 2 1 步骤 2 2 项目结构 3 源码 参考 这篇博客将演示如何使用Python OpenCV生成视频条形码 生成视频条形码通常是出于设计美感 它不具有广泛的计算机视觉
  • 阿里云ECS FTP搭建

    阿里云ECS windows版 FTP服务设置教程 1 https www filezilla cn 去下载服务端和客户端并安装好 2 阿里云添加安全组 3 FileZilla服务端配置 4 FileZilla客户端使用端口10021连接服
  • AI巨浪下,数据技术如何驱动智能未来?

    引言 数据技术是大数据时代的核心驱动力 也是推动各行各业数字化转型和智能化升级的关键因素 随着云计算 人工智能 区块链等新兴技术的不断发展和融合 数据技术也呈现出多模态 混合处理 自动化管理等新的趋势和特点 8 月 19 日 周六 第八届
  • MongoDB:模糊查询、数量、结果插入新表、重复字段

    模糊查询 body中包含 db getCollection test find body regex 骗子 body或title中包含 db getCollection test find or body regex 骗子 title re
  • astype转换数据类型

    astype方法 通用函数 可以用于把dataframe中的任何列转换成其他类型 常见的数据类型有 int 整型 float 浮点型 object str 字符串 category 分类数据 import pandas as pd impo
  • Django基础知识整理之DRF框架

    文章目录 1 DRF框架简介 2 DRF特点 3 环境安装与配置 4 DRF牛刀小试 1 创建序列化器 2 编写视图 3 定义路由 4 运行测试 1 DRF框架简介 Django REST framework 框架是一个用于构建Web AP
  • Flutter的Toast之oktoast的使用

    1 在pubspec yaml中加入 oktoast 2 0 0 然后运行package get 2 包装 app widget 在main dart中 必须使用OKToast包起来 3 调用 如果只是Toast文字 可直接调用showTo
  • 阿里云的OSS云存储的使用

    阿里云官网 https www aliyun com 通过阿里云官网 登录进入用户的界面 在搜索框中输入OSS 然后进入阿里云的对象存储OSS的控制台 未开通的开通即可 创建 Bucket 点击 Bucket 列表 查看个人的Bucket