/
githubmirror
/
photoprism
Обзор
Документация
Войти
/
githubmirror
/
photoprism
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
develop
pkg/fs/disk/nospace.go
37 строк
990 B
Michael Mayer
Storage: Map out-of-space writes to the insufficient-storage error #5613
31 май 2026, 01:23
31 май 2026, 01:23
b7d637d
Код
Авторство
О чём код?
package disk import ( "errors" "strings" "syscall" "github.com/photoprism/photoprism/pkg/log/status" ) // IsNoSpace reports whether err indicates the filesystem is out of space. // It matches both the ENOSPC errno returned by direct file writes and the // "no space left on device" text that external converters surface via stderr, // since their errors reach us as plain strings without the original errno. func IsNoSpace(err error) bool { if err == nil { return false } if errors.Is(err, syscall.ENOSPC) { return true } return strings.Contains(strings.ToLower(err.Error()), "no space left on device") } // AsInsufficientStorage maps an out-of-space write error to status.ErrInsufficientStorage // and flushes the cached free-space probe so the next check reflects the full disk; // nil and unrelated errors are returned unchanged. func AsInsufficientStorage(err error) error { if IsNoSpace(err) { FlushFree() return status.ErrInsufficientStorage } return err }