使用我的OSS服务
# 前言
看到了好东西就忍不住想要拿过来😋。
参加字节跳动青训营的时候学习了Go语言,有一节课上接触到了对象存储,了解对象存储的原理,然后就想自己也搞一个,于是就有了本项目。
本项目作为基于Hadoop的数据共享云平台中多服务之一,当初还没有接触到微服务,就自己搞了一个多服务,想着对象存储和普通存储之间也没啥联系(顶多也就是数据库有交集),要请求的时候直接用Nginx代理到对应的服务上去就完事了。
本文还是围绕着两个问题来进行介绍:是什么?怎么用?
# 是什么?(回答来自ChatGPT)
OSS是什么?OSS(Object Storage Service)是指对象存储服务,是一种提供互联网企业的文件存储服务,它以 Internet 为基础,通过 Web 界面或 API 方式对文件进行存储和管理。与传统的文件存储服务相比,对象存储服务具有更高的可靠性、可扩展性和灵活性。在对象存储中,数据以对象的形式存储在分布式存储集群中,每个对象都有自己的唯一标识符,并且可以通过 HTTP 或 HTTPS 协议来访问。
# 怎么用?
- 首先得先去注册一个平台账号数据共享云平台 (opens new window)
- 选择对象存储
- 创建Bucket
Bucket全局唯一不能重复,创建好了之后就可以往Bucket中添加数据了。
- 上传文件
直接上传就可以了,然后点击详情可以看见文件对应信息如果是图片则会直接显示。
复制链接后就可以直接使用了。
# API提供
由于升级成https后,出了一些bug,需要先debug一会😭。
# JavaAPI
pom依赖导入:
<dependency>
<groupId>io.github.atliyasi</groupId>
<artifactId>ossClient</artifactId>
<version>1.3</version>
</dependency>
1
2
3
4
5
2
3
4
5
按以下步骤进行使用:
- 获取OSSClient对象
OSSClient ossClient = OSSClient.getClient();
OSSClient ossClient = OSSClient.getClient(ServerUrl);
OSSClient ossClient = OSSClient.getClient(secretId, secretKey);
1
2
3
2
3
- 调用文件上传方法
MultipartFile file = new MultipartFile();
String s = ossClient.uploadBytes("your-bucketName", "your-secretId", "your-secretKey", file.getBytes(), file.getName());
File testFile = new File("file-url");
String s1 = ossClient.uploadFile("your-bucketName", "your-secretId", "your-secretKey", testFile);
String s2 = ossClient.uploadFile("your-bucketName", "your-secretId", "your-secretKey", "file-url");
// 如果您使用OSSClient.getClient(secretId, secretKey);获取客户端则不需要调用方法时附带秘钥信息
MultipartFile file = new MultipartFile();
String s = ossClient.uploadBytes("your-bucketName", file.getBytes(), file.getName());
File testFile = new File("file-url");
String s1 = ossClient.uploadFile("your-bucketName", testFile);
String s2 = ossClient.uploadFile("your-bucketName", "file-url");
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
- 解析返回值
String link = ossClient.parseAndHandleResponse(s).get("data");
1
# GoAPI
后续也会添加Go。