Skip to content

XiaoMi/go-fds

Folders and files

NameName
Last commit message
Last commit date

Latest commit

01a83e2 · Nov 28, 2024

History

95 Commits
Nov 28, 2018
Dec 21, 2023
Sep 7, 2023
Nov 28, 2024
Oct 9, 2018
Aug 19, 2019
Oct 11, 2018
Dec 3, 2018
Oct 11, 2018
Jan 19, 2020
Jan 19, 2020
Dec 2, 2018
Dec 21, 2023
Aug 7, 2023

Repository files navigation

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+.