go-fds

module
v1.0.10 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 21, 2023 License: Apache-2.0

README

go-fds

FDS Go SDK.

Build Status Go Report Card

The formal Go SDK of FDS is not well designed, but constrained by the fixed interface, I can't reconstruct it in large scale.

So, I start up this project for a good sdk design.

✨ ✨ ✨ We got context support working, which make your concurrent program more fluent

Install

go get -u github.com/XiaoMi/go-fds

Usage

package main

import (
	"log"
	"os"

	"github.com/XiaoMi/go-fds/fds"
	"github.com/XiaoMi/go-fds/fds/manager"
)

func main() {
	conf, _ := fds.NewClientConfiguration(os.Getenv("GO_FDS_TEST_ENDPOINT"))
	client := fds.New(os.Getenv("GO_FDS_TEST_ACCESS_KEY_ID"), os.Getenv("GO_FDS_TEST_ACCESS_KEY_SECRET"), conf)

	downloader, _ := manager.NewDownloader(client, 1024*1024, 10, true)

	request := &manager.DownloadRequest{
		GetObjectRequest: fds.GetObjectRequest{
			BucketName: "hellodf",
			ObjectName: "build.log",
		},
		FilePath: "/home/XiaoMi/tmp/build.log",
	}
	err := downloader.Download(request)
	if err != nil {
		log.Fatalln(err)
	} else {
		log.Println("Done")
	}
}

For more sample, please look into example package

Development

To develop go-fds, you'd better to upgrade your go version to 1.13+.

Directories

Path Synopsis
example
fds
Package fds 是小米云对象存储服务FDS的go语言客户端。
Package fds 是小米云对象存储服务FDS的go语言客户端。
manager
Package manager provides a concurrent downloading api with checkpoint for FDS
Package manager provides a concurrent downloading api with checkpoint for FDS

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL