面向应用的 Golang 统一存储层

2020-01-13 18:18:13 +08:00
 Xuanwo

Hi,我最近实现了一个库 storage,目标是成为面向应用的 Golang 统一存储层。

用起来的感觉大概是这样:

// Init a service.
srv, store, err := coreutils.Open("qingstor://hmac:test_access_key:test_secret_key@https:qingstor.com:443/test_bucket_name")
if err != nil {
    log.Fatalf("service init failed: %v", err)
}

// Use Storager API to maintain data.
ch := make(chan *types.Object, 1)
defer close(ch)

err := store.List("prefix", pairs.WithFileFunc(func(*types.Object){
    ch <- o
}))
if err != nil {
    log.Printf("storager listdir failed: %v", err)
}

希望大家能来看看并提一些改进的意见~

1999 次点击
所在节点    程序员
6 条回复
jaynos
2020-01-13 18:25:49 +08:00
莫名的感觉和 https://github.com/rclone/rclone 这个仓库实现的东西有点像
Xuanwo
2020-01-13 18:30:39 +08:00
@jaynos 这个库的设计目标就是让大家可以轻松的实现 rclone 这样对接多个存储后端的应用,不需要再每个都实现一遍
hankai17
2020-01-13 18:51:09 +08:00
能压测么?
Xuanwo
2020-01-14 09:18:32 +08:00
@hankai17 什么层面的压测?
zunceng
2020-01-14 11:35:39 +08:00
现在各种对象存储 接口都是兼容 s3 的
写的多 每个都要测试 也挺累的
Xuanwo
2020-01-14 13:00:33 +08:00
@zunceng 之后会采用 BDD 测试的形式来做集成测试,只有少部分逻辑才会专门写单测了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/637586

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX