1.在阿里云官网找到对象存储OSS
2.通过各种授权(略)
3.进入对象存储的控制台
通过阅读帮助文档的基本概念,我们可以知道,bucket是一个存储容器。要使用对象存储,就要先新建一个bucket,可以理解问新建一个文件夹存储东西。
4.创建bucket
1)在Bucket列表下点击创建bucket
2)填写bucket名称,由于是会有重名的,所以看着取
3)地域按照个人需求选择
4)读写权限
私有:上传和读取都需要秘钥
公共读:读取不需要秘钥,上传需要;一般选择这种,只允许读取,不允许随便上传。
公共读写:上传和读取都不需要秘钥,不是很安全
5)剩余的按自己需求选择就好了,或者直接按他的默认
6)点击左下角确认,然后完成,即可创建成功
5.简单的上传个文件
1)在sdk示例下,有个快速上传的教程
2)首先要新建一个springboot项目(略),并加入对象存储的SDK,也就是依赖;他的依赖可以在Java->安装下找到
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>3.10.2</version>
</dependency>
3)复制简单上传下,文件上传的代码到测试项目的测试方法中
//这是官方的示例
// Endpoint以杭州为例,其它Region请按实际情况填写。
String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
// 云账号AccessKey有所有API访问权限,建议遵循阿里云安全最佳实践,创建并使用RAM子账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建。
String accessKeyId = "<yourAccessKeyId>";
String accessKeySecret = "<yourAccessKeySecret>";
// 创建OSSClient实例。
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
// 上传文件流。
InputStream inputStream = new FileInputStream("<yourlocalFile>");
ossClient.putObject("<yourBucketName>", "<yourObjectName>", inputStream);
// 关闭OSSClient。
ossClient.shutdown();
//这是根据官方示例我写的代码
@Test
public void test() throws FileNotFoundException {
// Endpoint以杭州为例,其它Region请按实际情况填写。
String endpoint = "xxx";//需要替换的地方1,下面会说
// 云账号AccessKey有所有API访问权限,建议遵循阿里云安全最佳实践,创建并使用RAM子账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建。
String accessKeyId = "xx"; //需要替换的地方2
String accessKeySecret = "xx"; //需要替换的地方3
// 创建OSSClient实例。
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
// 上传文件流。
InputStream inputStream = new FileInputStream("D:\\桌面壁纸\\1597764688664.jpg");//文件地址
ossClient.putObject("xxx", "test.jpg", inputStream);//第一个参数是刚才新建的bucket名称,第二个参数是这个文件上传到服务器的名字
// 关闭OSSClient。
ossClient.shutdown();
System.out.println("上传完毕");
}
4)上面变量endpoint是需要替换的,他是某个bucket->概览下的endpoint,就是下图红框的地方
5)变量accessKeyId和accessKeySecret也是需要补充的,步骤如下:
1)把鼠标放到右上角的头像,点击accessKey管理。打开的页面会提示是否使用accessKey,选择是
2)在页面新建一个用户
3)填写登录名称和显示名称,这个不会重名,选择编程访问,因为我们是在代码中使用的
4)点击确定后,就可以看到assessKey和assessKeySecret,但是切记要保存好,因为关了貌似就看不到secret了,反正我是没找到。把这两个变量补充到代码上。
5)接着就是在刚才页面给该用户添加权限
6)直接添加fullassess,然后确定
7)运行测试代码,成功
8)进入bucket的文件管理,就能看到上传的文件。点击详情,可以看到他的信息
9)复制最下面的连接,在浏览器地址栏上打开,可以看到图片。那么直接把这个用在放到前端也是OK的
10)这种上传方式,如果在前后端分离项目,图片还要用流的方式经过我们自己的项目,这样会浪费项目带宽;但是如果把assessKey和secret保存在前端又不是很安全,所以阿里云还可以使用服务端签名的方式上传。如果使用了阿里巴巴的微服务组件,文件上传更便捷。有兴趣的话就自行阅读官方文档吧。