对象存储
「对象存储」是 Sealos 内置的对象存储服务,主要用于存储和管理非结构化数据。
目前「对象存储」具备以下功能:
- 上传文件
- 下载文件
- 公开访问「存储桶」
- SDK 访问「存储桶」
- 「存储桶」资源指标监控
快速开始
上传文件
进入「对象存储」
创建「存储桶」
设置「存储桶」名字为 test,权限为 private
「存储桶」创建成功
上传文件
上传文件成功
进阶操作
查看访问密钥,Access Key
公开「存储桶」
点击「编辑」
设置「存储桶权限」为 publicRead,点击「应用」
复制文件链接
粘贴到浏览器地址栏访问文件
SDK 访问「存储桶」
SDK 访问「存储桶」需要三个参数:AccessKey、SecretKey、Endpoint。参数都在访问密钥中,Internal 是内网地址 Endpoint,External 是外网地址 Endpoint。(如果需要使用 Region 参数,默认使用 us-east-1)
Go Client SDK
详细文档参考:https://min.io/docs/minio/linux/developers/go/API.html
例子:使用 Go Client SDK 上传文件 style.css 到 sv3dd7u4-test 存储桶。(使用外网地址 Endpoint,如果服务部署在 K8s 集群内,可以改为内网地址 Endpoint)
package main
import (
"context"
"fmt"
"log"
"os"
)
import "github.com/minio/minio-go/v7"
import "github.com/minio/minio-go/v7/pkg/credentials"
func main() {
endpoint := "objectstorageapi.xxx.xxx.xxx"
accessKey := "xxxxxxxx"
secretKey := "xxxxxxxxxxxxxxxx"
// init minio client
minioClient, err := minio.New(endpoint, &minio.Options{
Creds: credentials.NewStaticV4(accessKey, secretKey, ""),
})
if err != nil {
log.Fatalln(err)
}
// get local file
file, err := os.Open("./style.css")
if err != nil {
fmt.Println(err)
return
}
defer file.Close()
fileStat, err := file.Stat()
if err != nil {
fmt.Println(err)
return
}
// put object
uploadInfo, err := minioClient.PutObject(context.Background(), "sv3dd7u4-test", "style.css", file, fileStat.Size(), minio.PutObjectOptions{ContentType: "text/css"})
if err != nil {
fmt.Println(err)
return
}
fmt.Println("Successfully uploaded bytes: ", uploadInfo)
}
文件上传成功
Java Client SDK
详细文档参考:https://min.io/docs/minio/linux/developers/java/API.html
例子:使用 Go Client SDK 上传文件 style1.css 到 sv3dd7u4-test 存储桶。(使用外网地址 Endpoint,如果服务部署在 K8s 集群内,可以改为内网地址 Endpoint)
<dependency>
<groupId>io.minio</groupId>
<artifactId>minio</artifactId>
<version>8.5.9</version>
</dependency>
package org.example;
import io.minio.MinioClient;
import io.minio.UploadObjectArgs;
public class FileUploader {
public static void main(String[] args) throws Exception {
MinioClient minioClient =
MinioClient.builder()
.endpoint("https://objectstorageapi.xxx.xxx.xxx")
.credentials("xxxxxxxx", "xxxxxxxxxxxxxxxx")
.build();
minioClient.uploadObject(
UploadObjectArgs.builder()
.bucket("sv3dd7u4-test")
.object("style1.css")
.filename("src/main/java/org/example/style1.css")
.build());
System.out.println("Successfully uploaded bytes.");
}
}
文件上传成功
其他语言 SDK 略
详细文档参考:https://min.io/docs/minio/linux/developers/minio-drivers.html