Merge branch 'dev' into iam

This commit is contained in:
Ingo Oppermann
2023-02-14 19:08:37 +01:00
4 changed files with 23 additions and 8 deletions

View File

@@ -476,6 +476,12 @@ func (a *api) start() error {
return fmt.Errorf("disk filesystem: %w", err)
}
if diskfsRoot, err := filepath.Abs(cfg.Storage.Disk.Dir); err != nil {
return err
} else {
diskfs.SetMetadata("base", diskfsRoot)
}
a.diskfs = diskfs
baseMemFS := url.URL{

View File

@@ -156,6 +156,7 @@ type filesystem struct {
fs.FS
handler *handler.FSHandler
middleware echo.MiddlewareFunc
}
func NewServer(config Config) (Server, error) {
@@ -196,13 +197,13 @@ func NewServer(config Config) (Server, error) {
handler: handler.NewFS(fs),
}
s.filesystems[filesystem.Name] = filesystem
if fs.Filesystem.Type() == "disk" {
s.middleware.hlsrewrite = mwhlsrewrite.NewHLSRewriteWithConfig(mwhlsrewrite.HLSRewriteConfig{
filesystem.middleware = mwhlsrewrite.NewHLSRewriteWithConfig(mwhlsrewrite.HLSRewriteConfig{
PathPrefix: fs.Filesystem.Metadata("base"),
})
}
s.filesystems[filesystem.Name] = filesystem
}
if _, ok := corsPrefixes["/"]; !ok {
@@ -461,6 +462,14 @@ func (s *server) setRoutes() {
fs.Use(mwcache)
}
if filesystem.middleware != nil {
fs.Use(filesystem.middleware)
}
if s.middleware.session != nil {
fs.Use(s.middleware.session)
}
fs.GET("", filesystem.handler.GetFile)
fs.HEAD("", filesystem.handler.GetFile)

View File

@@ -43,8 +43,8 @@ type File interface {
}
type ReadFilesystem interface {
// Size returns the consumed size and capacity of the filesystem in bytes. If the
// capacity is 0 or smaller if the filesystem can consume as much space as it wants.
// Size returns the consumed size and capacity of the filesystem in bytes. The
// capacity is zero or negative if the filesystem can consume as much space as it wants.
Size() (int64, int64)
// Files returns the current number of files in the filesystem.

View File

@@ -22,7 +22,7 @@ type PurgeFilesystem interface {
type sizedFilesystem struct {
Filesystem
// Siez is the capacity of the filesystem in bytes
// Size is the capacity of the filesystem in bytes
maxSize int64
// Set true to automatically delete the oldest files until there's
@@ -106,7 +106,7 @@ func (r *sizedFilesystem) WriteFile(path string, data []byte) (int64, bool, erro
func (r *sizedFilesystem) WriteFileSafe(path string, data []byte) (int64, bool, error) {
currentSize, maxSize := r.Size()
if maxSize < 0 {
if maxSize <= 0 {
return r.Filesystem.WriteFile(path, data)
}