0


阿里云的OSS云存储的使用

阿里云官网: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的其他相关运用,可以通过查询官方文档进行测试,这里不再测试。


本文转载自: https://blog.csdn.net/m0_75063085/article/details/127787899
版权归原作者 Kirt W 所有, 如有侵权,请联系我们删除。

“阿里云的OSS云存储的使用”的评论:

还没有评论