阿里云的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 依赖。
com.aliyun.oss aliyun-sdk-oss 3.10.2 junit junit 4.13
新建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
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341