登录阿里云官网开通对象存储OSS服务
点击对象存储OSS
创建新的Bucket
点击Bucket列表,然后创建新的Bucket,建议是一个项目创建一个Bucket
Bucket基本的配置
- Bucket名称自己看着取就可以
- 地域的话可以选离自己近的地方,也可以选北京
- 如果是项目上线的话存储类型可以改成标准存储,因为我这里仅用于学习使用,所以我选择低频访问存储
- 读写权限:公共读
其他的按照自己个人需求进行修改即可
在Java代码中使用
pom.xml中引入依赖
如果不使用Spring Cloud Alibaba,导入下面这个依赖
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>3.5.0</version>
</dependency>
如果使用Spring Cloud Alibaba,导入下面这个依赖
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alicloud-oss</artifactId>
</dependency>
点击阿里云右上角这个AccessKey管理
使用子用户
点进来之后,如果是第一次使用的话会弹出这个对话框,我们点击使用子用户
创建用户
点击创建用户
登录名称和显示名称自己定义,记得把Open API 调用访问勾上
创建成功之后,我们主要用到的就是AccessKey ID和AccessKey Secret
创建成功后我们还需要为该子用户分配权限
因为我们这里是用该用户进行对象存储OSS,所以我们只需要为它分配该权限即可
编写配置文件
在配置文件中(application.properties/application.yml)配置
spring.cloud.alicloud.access-key=xxx
spring.cloud.alicloud.secret-key=xxx
spring.cloud.alicloud.oss.endpoint=xxx
这个endpoint是地域节点,在Bucket概览里可以找到,一般使用第一个就可以了
编写测试类
package com.atguigu.gulimall.thirdparty;
import com.aliyun.oss.OSSClient;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
@RunWith(SpringRunner.class)
@SpringBootTest
public class GulimallThirdPartyApplicationTests {
@Autowired
OSSClient ossClient;
@Test
public void contextLoads() throws FileNotFoundException {
// 上传文件流
InputStream inputStream = new FileInputStream("C:\\Users\\Administrator\\Pictures\\Saved Pictures\\3.jpg");
ossClient.putObject("study-bucket-01", "3.jpg", inputStream);
// 关闭文件流
ossClient.shutdown();
System.out.println("上传成功");
}
}
ossClient.putObject(‘Bucket的名称’, ‘将图片上传到oss后的名称’, 输入流);