Working simple PUT/GET API

This commit is contained in:
2026-02-21 11:55:14 +01:00
parent 22a8e4ea2e
commit f151f8055a
7 changed files with 116 additions and 43 deletions

36
main.go
View File

@@ -2,20 +2,12 @@ package main
import (
"fmt"
"fs/api"
"fs/metadata"
"fs/service"
"io"
"os"
)
func main() {
fmt.Println("Hello, World!")
imageStream, err := os.Open("fer.jpg")
if err != nil {
fmt.Printf("Error opening image stream: %v\n", err)
return
}
defer imageStream.Close()
metadataHandler, err := metadata.NewMetadataHandler("metadata.db")
if err != nil {
@@ -24,31 +16,9 @@ func main() {
}
objectService := service.NewObjectService(metadataHandler)
manifest, err := objectService.PutObject("test-bucket-ferdzo/fer.jpg", "image/jpeg", imageStream)
handler := api.NewHandler(objectService)
err = handler.Start("localhost:3000")
if err != nil {
fmt.Printf("Error ingesting stream: %v\n", err)
return
}
fmt.Printf("Manifest: %+v\n", manifest)
objectData, manifest2, err := objectService.GetObject("test-bucket-ferdzo", "fer.jpg")
if err != nil {
fmt.Printf("Error retrieving object: %v\n", err)
return
}
fmt.Printf("Retrieved manifest: %+v\n", manifest2)
recoveredFile, err := os.Create("recovered_" + manifest2.Key)
if err != nil {
fmt.Printf("Error creating file: %v\n", err)
return
}
defer recoveredFile.Close()
bytesWritten, err := io.Copy(recoveredFile, objectData)
if err != nil {
fmt.Printf("Error streaming to recovered file: %v\n", err)
return
}
fmt.Printf("Successfully streamed %d bytes to disk!\n", bytesWritten)
}