Skip to main content

介绍

Build Status Go dev License go storage dev

面向应用的 Golang 统一存储层。

目标#

  • 生产就绪
  • 高性能
  • 无供应商锁定

特性#

广泛的服务支持#

全面的操作支持#

  • Servicer: 服务级别的管理
  • Storager: 支持读取/写入/获取信息/删除/列取等所有基础对象操作
    • Copier: 在 Storager 中复制一个对象
    • Mover: 在 Storager 中移动一个对象
    • Reach: 给对象生成一个可公开访问的 url
    • Multiparter: 允许进行分段上传
    • Appender: 允许追加写入到对象 (Append)
    • Block: 允许使用 Block 来组合一个对象
    • Page: 允许随机写入操作
    • Fetcher: fetch from a given url to path

快速开始#

package main
import (
"bytes"
"log"
"github.com/aos-dev/go-storage/v3/pairs"
"github.com/aos-dev/go-service-fs/v2"
)
func main() {
// 初始化服务
store, err := fs.NewStorager(pairs.WithWorkDir("/tmp"))
if err != nil {
log.Fatalf("service init failed: %v", err)
}
content := []byte("Hello, world!")
length := int64(len(content))
r := bytes.NewReader(content)
_, err = store.Write("hello", r, length)
if err != nil {
log.Fatalf("write failed: %v", err)
}
var buf bytes.Buffer
_, err = store.Read("hello", &buf)
if err != nil {
log.Fatalf("storager read: %v", err)
}
log.Printf("%s", buf.String())
}

示例#

所有示例都在 https://github.com/aos-dev/go-storage-example 中维护。

赞助者#

Last updated on by Xuanwo