Compare commits

..

3 Commits

Author SHA1 Message Date
753a6c9708 fix: temporarily write blob directly as response body without http.ServeContent
All checks were successful
arcad/edge/pipeline/head This commit looks good
2023-12-05 14:18:22 +01:00
b120e590b6 fix: do not use goja.Value outside of run loop 2023-12-05 14:14:08 +01:00
242bf379a8 feat: rewrite cache blobstore driver parameters parsing
All checks were successful
arcad/edge/pipeline/head This commit looks good
2023-12-03 14:26:57 +01:00
3 changed files with 13 additions and 8 deletions

View File

@ -132,17 +132,17 @@ func (s *Server) Exec(ctx context.Context, callableOrFuncname any, args ...inter
value := result.value
if promise, ok := IsPromise(value); ok {
value = s.waitForPromise(promise)
return s.waitForPromise(promise), nil
}
return value.Export(), nil
}
}
func (s *Server) waitForPromise(promise *goja.Promise) goja.Value {
func (s *Server) waitForPromise(promise *goja.Promise) any {
var (
wg sync.WaitGroup
value goja.Value
value any
)
wg.Add(1)
@ -162,7 +162,7 @@ func (s *Server) waitForPromise(promise *goja.Promise) goja.Value {
return
}
value = promise.Result()
value = promise.Result().Export()
breakLoop = true
})

View File

@ -2,6 +2,7 @@ package blob
import (
"encoding/json"
"io"
"io/fs"
"mime/multipart"
"net/http"
@ -164,7 +165,14 @@ func handleAppDownload(w http.ResponseWriter, r *http.Request) {
}
}()
http.ServeContent(w, r, string(replyMessage.BlobInfo.ID()), replyMessage.BlobInfo.ModTime(), replyMessage.Blob)
// TODO Fix usage of ServeContent
// http.ServeContent(w, r, string(replyMessage.BlobInfo.ID()), replyMessage.BlobInfo.ModTime(), replyMessage.Blob)
w.Header().Add("Content-Type", replyMessage.BlobInfo.ContentType())
if _, err := io.Copy(w, replyMessage.Blob); err != nil {
logger.Error(ctx, "could not write blob", logger.CapturedE(errors.WithStack(err)))
}
}
type uploadedFile struct {

View File

@ -8,7 +8,6 @@ import (
"forge.cadoles.com/arcad/edge/pkg/storage"
"forge.cadoles.com/arcad/edge/pkg/storage/driver"
"forge.cadoles.com/arcad/edge/pkg/storage/share"
"github.com/davecgh/go-spew/spew"
"github.com/pkg/errors"
)
@ -40,8 +39,6 @@ func documentStoreFactory(url *url.URL) (storage.DocumentStore, error) {
func blobStoreFactory(url *url.URL) (storage.BlobStore, error) {
dir := filepath.Dir(url.Host + url.Path)
spew.Dump(url.Host + url.Path)
if dir != "." {
if err := os.MkdirAll(dir, os.FileMode(0750)); err != nil {
return nil, errors.WithStack(err)