diff --git a/internal/server/api_files.go b/internal/server/api_files.go index 1c58cea..daf0918 100644 --- a/internal/server/api_files.go +++ b/internal/server/api_files.go @@ -198,6 +198,11 @@ func (s *Server) requireFileAccess(ctx context.Context, rawFileID string, user * // saveUpload пишет файл на диск и регистрирует его в БД. func (s *Server) saveUpload(ctx context.Context, file store.File, content io.Reader) (*store.File, error) { + if s.cfg.DataDir == "" { + // Без каталога данных файл некуда положить: лучше явная ошибка, чем + // запись в текущий рабочий каталог процесса. + return nil, humaErrorStatus(http.StatusInternalServerError, "internal.error", "data directory is not configured") + } directory := filepath.Join(s.cfg.DataDir, "files") if err := os.MkdirAll(directory, 0o700); err != nil { return nil, humaErrorStatus(http.StatusInternalServerError, "internal.error", "cannot prepare storage") diff --git a/internal/server/files/94894031435202560 b/internal/server/files/94894031435202560 deleted file mode 100644 index c717552..0000000 --- a/internal/server/files/94894031435202560 +++ /dev/null @@ -1 +0,0 @@ -вложение: проверка загрузки \ No newline at end of file diff --git a/internal/server/files/94894082492465152 b/internal/server/files/94894082492465152 deleted file mode 100644 index c717552..0000000 --- a/internal/server/files/94894082492465152 +++ /dev/null @@ -1 +0,0 @@ -вложение: проверка загрузки \ No newline at end of file diff --git a/internal/server/files/94894120186675200 b/internal/server/files/94894120186675200 deleted file mode 100644 index c717552..0000000 --- a/internal/server/files/94894120186675200 +++ /dev/null @@ -1 +0,0 @@ -вложение: проверка загрузки \ No newline at end of file diff --git a/internal/server/files/94894120199258112 b/internal/server/files/94894120199258112 deleted file mode 100644 index c717552..0000000 --- a/internal/server/files/94894120199258112 +++ /dev/null @@ -1 +0,0 @@ -вложение: проверка загрузки \ No newline at end of file diff --git a/internal/server/files/94894158157709312 b/internal/server/files/94894158157709312 deleted file mode 100644 index c717552..0000000 --- a/internal/server/files/94894158157709312 +++ /dev/null @@ -1 +0,0 @@ -вложение: проверка загрузки \ No newline at end of file diff --git a/internal/server/files/94894158166097920 b/internal/server/files/94894158166097920 deleted file mode 100644 index c717552..0000000 --- a/internal/server/files/94894158166097920 +++ /dev/null @@ -1 +0,0 @@ -вложение: проверка загрузки \ No newline at end of file diff --git a/internal/server/files/94894189732429824 b/internal/server/files/94894189732429824 deleted file mode 100644 index c717552..0000000 --- a/internal/server/files/94894189732429824 +++ /dev/null @@ -1 +0,0 @@ -вложение: проверка загрузки \ No newline at end of file diff --git a/internal/server/files/94894189753401344 b/internal/server/files/94894189753401344 deleted file mode 100644 index c717552..0000000 --- a/internal/server/files/94894189753401344 +++ /dev/null @@ -1 +0,0 @@ -вложение: проверка загрузки \ No newline at end of file diff --git a/internal/server/files/94894341939527680 b/internal/server/files/94894341939527680 deleted file mode 100644 index c717552..0000000 --- a/internal/server/files/94894341939527680 +++ /dev/null @@ -1 +0,0 @@ -вложение: проверка загрузки \ No newline at end of file diff --git a/internal/server/files/94894341952110592 b/internal/server/files/94894341952110592 deleted file mode 100644 index c717552..0000000 --- a/internal/server/files/94894341952110592 +++ /dev/null @@ -1 +0,0 @@ -вложение: проверка загрузки \ No newline at end of file diff --git a/internal/server/files/94894465700855808 b/internal/server/files/94894465700855808 deleted file mode 100644 index c717552..0000000 --- a/internal/server/files/94894465700855808 +++ /dev/null @@ -1 +0,0 @@ -вложение: проверка загрузки \ No newline at end of file diff --git a/internal/server/files/94894465721827328 b/internal/server/files/94894465721827328 deleted file mode 100644 index c717552..0000000 --- a/internal/server/files/94894465721827328 +++ /dev/null @@ -1 +0,0 @@ -вложение: проверка загрузки \ No newline at end of file diff --git a/internal/server/files/94896017563975680 b/internal/server/files/94896017563975680 deleted file mode 100644 index c717552..0000000 --- a/internal/server/files/94896017563975680 +++ /dev/null @@ -1 +0,0 @@ -вложение: проверка загрузки \ No newline at end of file diff --git a/internal/server/files/94896017584947200 b/internal/server/files/94896017584947200 deleted file mode 100644 index c717552..0000000 --- a/internal/server/files/94896017584947200 +++ /dev/null @@ -1 +0,0 @@ -вложение: проверка загрузки \ No newline at end of file diff --git a/internal/server/server_test.go b/internal/server/server_test.go index d26ecf5..2964459 100644 --- a/internal/server/server_test.go +++ b/internal/server/server_test.go @@ -40,6 +40,9 @@ func newTestServer(t *testing.T) (*Server, *database.DB) { }) cfg := config.Config{ + // Данные (в том числе загруженные файлы) — во временном каталоге, + // иначе тесты пишут в рабочее дерево репозитория. + DataDir: t.TempDir(), Domain: "gl.mhspx.su", WebRoot: filepath.Join("testdata", "web"), FilesDomain: "files.gl.mhspx.su",