Aliyun OSS对象存储,可以用来做文件服务器,存放一些文件,图片等资源,那么我们使用OSS,需要经历以下步骤:
这里就从如何开通OSS服务开始进行,到如何上传一个资源文件到OSS结束。
1、阿里云注册
这里就不谈了,有支付宝账号都可以算。
2、开通OSS对象存储服务器:
-
点击对象存储OSS,前往开通
-
登录自己的阿里云账号
-
登录自己的阿里云账号,进入到控制台:
-
在搜索栏中搜索OSS→点击OSS对象存储:
-
点击立即开通:
-
勾选协议→立即开通,等待几秒钟,就开通完成了:
-
开通成功:
-
进入到控制台,可以看到OSS对象存储相关的选项:
-
到这里,OSS对象存储就已经完成了。
3、创建Bucket
bucket(桶),相当于是一个存储空间,而资源对象就是放到该空间里面,所以我们接下来接着创建一个Bucket空间:
-
在Bucket列表→创建Bucket:
-
填写相关信息,填写名称之后,存储类型如果做学习用或访问频率不高就选择“低频访问存储”,读写权限采用公共读,这样任何网络都可以去读取文件内容,然后点击确定,
Endpoint(地域节点)是根据不同地区生成的节点,我们在代码中上传的时候会用到,Bucket 域名 就是该存储空间的访问域名了,用来访问文件的:
- 点击确定之后可以看到,创建成功了!
- 在Bucket列表也可以看到,是有刚刚创建的Bucket:
-
到这里,bucket就创建好了。
4、文件管理
可以在阿里云的OSS控制台直接进行文件上传,我们来试试:
-
找到刚刚创建的Bucket→上传文件:
-
选择电脑上的文件:
-
上传成功提示:
-
打开bucket,就可以看到我们刚刚上传的图片
-
到这里,通过OSS存储对象存储图片,就已经完成了,更多的操作找到里面的一些按钮就可以完成【比如下载,删除】。
5、AccessKey子账户创建:
我们要在代码里面去对接OSS,就需要使用到子账户,需要去提前准备好一些东西。
要准备好如下4个东西,才能在代码里面对接上OSS:
-
Endpoint(地域节点):oss-cn-beijing.aliyuncs.com ,创建存储空间Bucket时选择不同的地区生成的区域节点
-
存储空间:temp-bucket-cg , 存储空间的名字
-
AccessKey :创建的文件上传子账户的key
-
Secrect : 创建子账户对应的秘钥
-
点击AccessKey管理:
-
第一次进来,点击知晓并确定
-
接下来,我们选择创建子账户,因为权限会更高:
-
在用户界面→创建用户:
-
填写信息,勾选OpenAPI调用访问,然后点击确定。
-
到这里,子账户就创建好了,访问ID和访问密钥也能看到[复制下来保存好],这两个东西类似于账号密码,妥善保管。
-
接下来,我们需要给子账户添加权限,找到用户→自己的子账户→添加权限:
-
比如我这里给了一个OSS的管理权限,那么文件的读写就够了
-
到这里,关于子账户的创建和权限添加就设置成功了。
总结需要的东西:
-
Endpoint(地域节点):oss-cn-chengdu.aliyuncs.com
-
存储空间:oss-bucket-test1
-
AccessKey :子账户的key
-
Secrect : 子账户的秘钥
到这里,我们代码编写前的准备都已经ok了,接下来开始准备代码
6、Java接入OSS
首先我们需要引入阿里云提供的关于OSS的SDK(jar包),我们创建一个普通java项目(maven项目就导入对应的pom依赖),导入进来
-
可以直接在官网上进行下载:
-
导入之后的效果:
-
根据文档编写一个简单的文件上传:
import com.aliyun.oss.OSS; import com.aliyun.oss.OSSClientBuilder; import com.aliyun.oss.model.PutObjectRequest; import java.io.File; /** * @Author: xjx * @Date: 2024/01/23/15:27 * @Description: 往阿里云oss存储引擎里面存放图片 * */ public class OSSAddTest { public static void main(String[] args) { try { //端点,我这里的端点是成都 String endpoint = "http://oss-cn-chengdu.aliyuncs.com"; //阿里云主账号AccessKeyID(访问ID)、accessKeySecret(访问密钥) // String accessKeyId = "LTAI5t6sqde8e6WtVuceqY5i"; // String accessKeySecret = "vslILUVGfW7RGvf2Q2DIfoAE4fqdFE"; String accessKeyId = "你的访问accessKey"; String accessKeySecret = "你的秘钥"; //根据提供的信息创建OSSClient(oss客户端)实例 OSS ossClient = new OSSClientBuilder(). build(endpoint, accessKeyId, accessKeySecret); //创建好对象后,往oss里面添加图片,创建添加对象【bucketName:桶名,key:添加之后的名字(名字一样会覆盖原图片),第三个参数是本地图片地址】 PutObjectRequest putObjectRequest = new PutObjectRequest("oss-bucket-test1", "a.png", new File("C:\\Users\\d\\Pictures\\00004-3806264314.png")); //执行上传 ossClient.putObject(putObjectRequest); //用完之后,关闭OSS客户端 ossClient.shutdown(); System.out.println("文件上传成功!"); }catch (Exception e){ e.printStackTrace(); } } }
-
运行后java控制台:
-
OSS的Bucket里面:
到这里,成功通过java代码将图片上传到OSS里面,后续更多操作详情请看官方文档:PutObject_对象存储(OSS)-阿里云帮助中心 (aliyun.com)