阿里云官网:https://www.aliyun.com/
通过阿里云官网,登录进入用户的界面,在搜索框中输入OSS,然后进入阿里云的对象存储OSS的控制台。(未开通的开通即可)
点击【Bucket 列表】,查看个人的Bucket。点击【创建 Bucket】,创建新的 Bucket。其中必填项有:
点击【确定】,即可创建。
可以通过【文件管理】中【文件列表】进行上传文件
点击【上传文件】,即可上传指定文件到OSS中。
选择上传文件,步骤如图。除了上传文件外,还可以上传文件夹。
点击【上传文件】后,通过【任务列表】可以查看上传的文件情况。
之后,可以在【文件列表】中查看上传的文件,且可以点击【详情】查看文件的信息。
在【详情】中,可以注意到文件有一个URL地址,我们可以通过这个地址下载该文件。
如果想要在开发中进行操作阿里云OSS云存储的文件,那么需要配置 RAM。配置的具体操作如下。
点击【账户头像】,找到【AccessKey 管理】。
点击【AccessKey 管理】,进入RAM 访问控制台,注意选择【使用子用户】。
进入【RAM 访问控制】,点击【用户】。可以通过【创建用户】来新建一个用户。
新建用户,输入登录名称和显示名称,访问方式选择【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。
因为我是在 Java 开发中使用的,所以就点击【Java SDK】。
众所周知,要使用一个工具时,第一步应该是安装它。所以进入【Java SDK】后,直接点击【SDK示例】下的【Java】->【安装】。通过【安装】中的文件描述,可选择你的安装的方式。
查阅官方文档可知,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 是 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的命名规范如下:
下面是一种命名的错误情况:
通过查看阿里云的OSS云存储的Bucket列表,可以看到【Bucket列表】中,创建了【oss-filetest-01】存储空间。
通过查看【oss-filetest-01】的概览可知,创建的存储空间是使用默认值的,比如存储空间的访问权限是私有的等。
可以通过代码获取存储空间的访问权限。
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();
}
}
运行结果
除了获取存储空间的访问权限外,还可以设置存储空间的访问权限。
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的其他相关运用,可以通过查询官方文档进行测试,这里不再测试。