Files-com / files-sdk-go

Files.com Official Go SDK. Files.com is Cloud Storage, Cloud Gateway, and MFT, All In One. Our built-in storage is fast, affordable, and available in 7 Worldwide Regions. Access Any File on Any Cloud via Files.com's Golang client, including Google, Amazon, Microsoft, Box, Dropbox, Amazon, Wasabi, Backblaze, Rackspace, and more.

Home Page:https://developers.files.com/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Files.com Go Client

The Files.com Go client library provides convenient access to the Files.com API from applications written in the Go language.

Installation

Make sure your project is using Go Modules (it will have a go.mod file in its root if it already is):

go mod init

Then, reference files-sdk-go in a Go program with import:

import (
    "github.com/Files-com/files-sdk-go/v3"
    "github.com/Files-com/files-sdk-go/v3/folder"
)

Run any of the normal go commands (build/install/test). The Go toolchain will resolve and fetch the files module automatically.

Documentation

Setting API Key

Setting by ENV

export FILES_API_KEY="XXXX-XXXX..."

Set Global Variable

import (
    "github.com/Files-com/files-sdk-go/v3"
)

 files_sdk.GlobalConfig.APIKey = "XXXX-XXXX..."

Set Per Client

import (
    "github.com/Files-com/files-sdk-go/v3"
    "github.com/Files-com/files-sdk-go/v3/file"
)

config := files_sdk.Config{APIKey: "XXXX-XXXX..."}.Init()
client := file.Client{Config: config}

List

import (
	files_sdk "github.com/Files-com/files-sdk-go/v3"
	folder "github.com/Files-com/files-sdk-go/v3/folder"
    "fmt"
)

func main() {
    it, err := folder.ListFor(files_sdk.FolderListForParams{})

    if err != nil {
        // deal with error
    }

    for it.Next() {
        entry := it.Folder()
        fmt.Println(entry.Path)
    }
}

Upload a File

import (
	files_sdk "github.com/Files-com/files-sdk-go/v3"
	file "github.com/Files-com/files-sdk-go/v3/file"
)

func main() {
    client := file.Client{Config: files_sdk.GlobalConfig}
    uploadPath := "file-to-upload.txt"
    destinationPath := "file-to-upload.txt"
    err := client.Upload(UploadWithFile(uploadPath), UploadWithDestinationPath(destinationPath))
    if err != nil {
        panic(err)
    }
}

Via io.Reader

import file "github.com/Files-com/files-sdk-go/v3/file"

func main() {
    client := file.Client{Config: files_sdk.GlobalConfig}
    io := strings.NewReader("my file contents")
    destinationPath := "my-file.txt"
    err := client.Upload(UploadWithReader(io), UploadWithDestinationPath(destinationPath))
    if err != nil {
        panic(err)
    }
}

Download a File

import file "github.com/Files-com/files-sdk-go/v3/file"

func main() {
    client := file.Client{Config: files_sdk.GlobalConfig}
    downloadPath := "file-to-download.txt"
    fileEntry, err := client.DownloadToFile(files_sdk.FileDownloadParams{Path: "file-to-download.txt"}, downloadPath)
    if err != nil {
        panic(err)
    }
}

Docker

docker build . --tag files-sdk-go:latest
docker run --workdir /app --volume ${PWD}:/app -it files-sdk-go

Getting Support

The Files.com team is happy to help with any SDK Integration challenges you may face.

Just email support@files.com and we'll get the process started.

About

Files.com Official Go SDK. Files.com is Cloud Storage, Cloud Gateway, and MFT, All In One. Our built-in storage is fast, affordable, and available in 7 Worldwide Regions. Access Any File on Any Cloud via Files.com's Golang client, including Google, Amazon, Microsoft, Box, Dropbox, Amazon, Wasabi, Backblaze, Rackspace, and more.

https://developers.files.com/

License:MIT License


Languages

Language:Go 100.0%Language:Dockerfile 0.0%