SpringCloud整合阿里云OSS实现图片上传
1. 登录注册阿里云并开通OSS服务
1.1 在控制台搜索阿里云对象存储公共OSS
点击开通OSS对象存储功能
1.2 开通后 点击控制台管理
1.3 点击Bucket列表 创建Bucket实例
实例创建成功后,就可以在控制台上传文件
2. 使用Java代码实现图片上传
2.1 引入相关的依赖
<dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId> <version>3.5.0</version> </dependency>
2.2 编写测试代码实现图片上传
// yourEndpoint填写Bucket所在地域对应的Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。 String endpoint = "yourEndpoint"; // 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。 String accessKeyId = "yourAccessKeyId"; String accessKeySecret = "yourAccessKeySecret"; // 填写Bucket名称,例如examplebucket。 String bucketName = "examplebucket"; // 填写文件名。文件名包含路径,不包含Bucket名称。例如exampledir/exampleobject.txt。 String objectName = "exampledir/exampleobject.txt"; OSS ossClient = null; try { // 创建OSSClient实例。 ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); String content = "Hello OSS"; ossClient.putObject(bucketName, objectName, new ByteArrayInputStream(content.getBytes())); } catch (OSSException e){ e.printStackTrace(); } finally { // 关闭OSSClient。 ossClient.shutdown(); }
2.3 endpoint accessKeyId accessKeySecret 的获取
endpoint 即创建Bucket是所选择的 创建完用户后,给用户授予相应的权限
注意 创建完用户不要关闭页面 否则就找不到accessKeyId accessKeySecret信息
创建完用户和赋值给相应的权限后即可查看自己的accessKeyId accessKeySecret 复制放在自己的代码中即可使用 测试即可成功上传文件
3. 使用SpringCloud-Alibaba实现图片上传
3.1 引入相关的依赖
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alicloud-oss</artifactId> </dependency>
3.2 在配置文件中配置相应的信息
spring: alicloud: access-key: secret-key: oss: endpoint:
配置完相关信息 通过注意OSSClient 即可使用
@Autowired private OSSClient ossClient; ```java @Autowired private OSSClient ossClient; @Test public void testUpload() throws FileNotFoundException { // 上传文件流 System.out.println(ossClient); InputStream inputStream = new FileInputStream("C:\Users\86157\Pictures\哪吒.jpg"); ossClient.putObject("gulimall-ambition","bug.jpg",inputStream); // 关闭OSSClient ossClient.shutdown(); System.out.println("上传完成..."); }
更相信的使用信息 请查看官方具体的SDK