# README
storage
This repository contains source code for file storage, supporting local file storage and cloud remote ones.
Install module
go get github.com/rovergulf/storage
Example
package main
import (
"context"
"log"
"github.com/rovergulf/storage"
)
func main() {
ctx := context.Background()
storagePath := "/temp/my-storage"
fs, err := storage.NewStorage(
storage.WithBackends(storage.LocalBackends),
storage.WithPrefix(storagePath),
)
if err != nil {
log.Fatal(err)
}
fileData := []byte(`{"example": "hello world"}`)
fileName := "example.json"
// check if file key already exists
if exists, _ := fs.Exists(ctx, fileName); exists {
log.Printf("'%s' already exists", fileName)
return
}
// upload data
uploadErr := fs.Put(ctx, fileName, fileData)
if uploadErr != nil {
log.Fatalf("Unable to upload to '%s': %s", fileName, err)
// handle uploadErr
}
}
OpenTelemetry support
This package supports OpenTelemetry tracer spans.
Visit opentelemetry-go examples to install tracer provider and provide tracer as storage storage.WithTracer
option
package main
import (
...
"go.opentelemetry.io/otel"
"github.com/rovergulf/storage"
)
func main() {
tracer := otel.Tracer("go-storage")
fs, err := storage.NewStorage(
...,
storage.WithTracer(tracer),
)
if err != nil {
// handle err
}
}
# Functions
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
# Constants
No description provided by the author
No description provided by the author
No description provided by the author
# Variables
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
# Structs
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
# Interfaces
Storage represents main interface for file storage as key/value database.
No description provided by the author