mirror of
https://github.com/ferdzo/fs.git
synced 2026-04-05 01:36:25 +00:00
Working simple PUT/GET API
This commit is contained in:
36
main.go
36
main.go
@@ -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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user