github.com/onflow/flow-go@v0.35.7-crescendo-preview.23-atree-inlining/engine/execution/ingestion/uploader/file_uploader.go (about) 1 package uploader 2 3 import ( 4 "bufio" 5 "fmt" 6 "os" 7 "path" 8 9 "github.com/onflow/flow-go/engine/execution" 10 ) 11 12 func NewFileUploader(dir string) *FileUploader { 13 return &FileUploader{ 14 dir: dir, 15 } 16 } 17 18 type FileUploader struct { 19 dir string 20 } 21 22 func (f *FileUploader) Upload(computationResult *execution.ComputationResult) error { 23 file, err := os.Create(path.Join(f.dir, fmt.Sprintf("%s.cbor", computationResult.ExecutableBlock.ID()))) 24 if err != nil { 25 return fmt.Errorf("cannot create file for writing block data: %w", err) 26 } 27 defer file.Close() 28 29 writer := bufio.NewWriter(file) 30 defer writer.Flush() 31 32 return WriteComputationResultsTo(computationResult, writer) 33 }