67 lines
1.5 KiB
Go
Raw Normal View History

2025-10-14 14:16:15 +02:00
package main
import (
"bytes"
2026-03-06 10:21:19 +04:00
"context"
2025-10-14 14:16:15 +02:00
"log"
"os"
2026-03-06 10:21:19 +04:00
"github.com/logos-storage/logos-storage-go-bindings/storage"
2025-10-14 14:16:15 +02:00
)
func main() {
2026-03-06 10:21:19 +04:00
node, err := storage.New(storage.Config{
2025-10-14 14:16:15 +02:00
BlockRetries: 5,
})
if err != nil {
2026-03-06 10:21:19 +04:00
log.Fatalf("Failed to create Logos Storage node: %v", err)
2025-10-14 14:16:15 +02:00
}
2026-03-18 12:19:00 +04:00
version := node.Version()
2026-03-06 10:21:19 +04:00
log.Printf("Logos Storage version: %s", version)
2025-10-14 14:16:15 +02:00
if err := node.Start(); err != nil {
2026-03-06 10:21:19 +04:00
log.Fatalf("Failed to start Logos Storage node: %v", err)
2025-10-14 14:16:15 +02:00
}
2026-03-06 10:21:19 +04:00
log.Println("Logos Storage node started")
2025-10-14 14:16:15 +02:00
buf := bytes.NewBuffer([]byte("Hello World!"))
len := buf.Len()
2026-03-06 10:21:19 +04:00
cid, err := node.UploadReader(context.Background(), storage.UploadOptions{Filepath: "hello.txt"}, buf)
2025-10-14 14:16:15 +02:00
if err != nil {
log.Fatalf("Failed to upload data: %v", err)
}
log.Printf("Uploaded data with CID: %s (size: %d bytes)", cid, len)
f, err := os.Create("hello.txt")
if err != nil {
log.Fatal("Failed to create file:", err)
}
defer f.Close()
2026-03-06 10:21:19 +04:00
opt := storage.DownloadStreamOptions{
2025-10-14 14:16:15 +02:00
Writer: f,
}
2026-03-06 10:21:19 +04:00
if err := node.DownloadStream(context.Background(), cid, opt); err != nil {
2025-10-14 14:16:15 +02:00
log.Fatalf("Failed to download data: %v", err)
}
log.Println("Downloaded data to hello.txt")
// Wait for a SIGINT or SIGTERM signal
2025-10-15 08:10:37 +02:00
// ch := make(chan os.Signal, 1)
// signal.Notify(ch, syscall.SIGINT, syscall.SIGTERM)
// <-ch
2025-10-14 14:16:15 +02:00
if err := node.Stop(); err != nil {
2026-03-06 10:21:19 +04:00
log.Fatalf("Failed to stop Logos Storage node: %v", err)
2025-10-14 14:16:15 +02:00
}
2026-03-06 10:21:19 +04:00
log.Println("Logos Storage node stopped")
2025-10-14 14:16:15 +02:00
if err := node.Destroy(); err != nil {
2026-03-06 10:21:19 +04:00
log.Fatalf("Failed to destroy Logos Storage node: %v", err)
2025-10-14 14:16:15 +02:00
}
}