diff --git a/nomad/api/archive.py b/nomad/api/archive.py
index 8f4776f0d93865aeadb80c8c625f6b26fc5eeee1..560db23d8251816c136c4ca4f360711306d49f98 100644
--- a/nomad/api/archive.py
+++ b/nomad/api/archive.py
@@ -24,7 +24,7 @@ from flask_restplus import abort, Resource
 
 import nomad_meta_info
 
-from nomad.uploads import UploadFiles, Restricted
+from nomad.files import UploadFiles, Restricted
 
 from .app import api
 from .auth import login_if_available, create_authorization_predicate
diff --git a/nomad/api/auth.py b/nomad/api/auth.py
index 3c13aba9084b3dd429e160fd00c23cefb94c35a2..74c5a4577faa7ac5abe3b18d502f883a581c3ead 100644
--- a/nomad/api/auth.py
+++ b/nomad/api/auth.py
@@ -39,7 +39,7 @@ from flask import g, request, make_response
 from flask_restplus import abort, Resource
 from flask_httpauth import HTTPBasicAuth
 
-from nomad import config, processing, uploads, utils, coe_repo
+from nomad import config, processing, files, utils, coe_repo
 from nomad.coe_repo import User, LoginException
 
 from .app import app, api
@@ -170,7 +170,7 @@ def create_authorization_predicate(upload_hash, calc_hash=None):
             return str(g.user.user_id) == str(staging_upload.user_id)
 
         # There are no db entries for the given resource
-        if uploads.UploadFiles.get(upload_hash) is not None:
+        if files.UploadFiles.get(upload_hash) is not None:
             logger = utils.get_logger(__name__, upload_hash=upload_hash, calc_hash=calc_hash)
             logger.error('Upload files without respective db entry')
 
diff --git a/nomad/api/raw.py b/nomad/api/raw.py
index a30ea954e30c1396711a83b1699dacce87f3c8e1..1a8b8e3a3fc3e8401ef22b36841eedb11f3d5509 100644
--- a/nomad/api/raw.py
+++ b/nomad/api/raw.py
@@ -23,7 +23,7 @@ import zipstream
 from flask import Response, request, send_file, stream_with_context
 from flask_restplus import abort, Resource, fields
 
-from nomad.uploads import UploadFiles, Restricted
+from nomad.files import UploadFiles, Restricted
 
 from .app import api
 from .auth import login_if_available, create_authorization_predicate
diff --git a/nomad/api/upload.py b/nomad/api/upload.py
index 915ba2c271c56ffff24f0a61cf5e15a8db0666ae..a63ce5f86684870c9c9cb64055629f750bf803fb 100644
--- a/nomad/api/upload.py
+++ b/nomad/api/upload.py
@@ -26,7 +26,7 @@ import os.path
 from nomad import config, utils
 from nomad.processing import Upload
 from nomad.processing import NotAllowedDuringProcessing
-from nomad.uploads import ArchiveBasedStagingUploadFiles, StagingUploadFiles, UploadFiles
+from nomad.files import ArchiveBasedStagingUploadFiles, StagingUploadFiles, UploadFiles
 
 from .app import api, with_logger
 from .auth import login_really_required
diff --git a/nomad/client.py b/nomad/client.py
index 358326e9322af4d38e661343892442d6abbad76e..d8e436864753d5daf1903fae3793fd33ee1910bf 100644
--- a/nomad/client.py
+++ b/nomad/client.py
@@ -28,7 +28,7 @@ from bravado.requests_client import RequestsClient
 from bravado.client import SwaggerClient
 
 from nomad import config, utils
-from nomad.uploads import ArchiveBasedStagingUploadFiles
+from nomad.files import ArchiveBasedStagingUploadFiles
 from nomad.parsing import parsers, parser_dict, LocalBackend
 from nomad.normalizing import normalizers
 
diff --git a/nomad/datamodel.py b/nomad/datamodel.py
index 009a6cf5d966aaee3bc80bcb087c024c7dbe194f..2494114e698e6845313c5f60128793976854d088 100644
--- a/nomad/datamodel.py
+++ b/nomad/datamodel.py
@@ -16,7 +16,7 @@
 This module contains classes that allow to represent the core
 nomad data entities :class:`Upload` and :class:`Calc` on a high level of abstraction
 independent from their representation in the different modules :py:mod:`nomad.repo`,
-:py:mod:`nomad.processing`, :py:mod:`nomad.coe_repo`, :py:mod:`nomad.uploads`.
+:py:mod:`nomad.processing`, :py:mod:`nomad.coe_repo`, :py:mod:`nomad.files`.
 It is not about representing every detail, but those parts that are directly involved in
 api, processing, migration, mirroring, or other 'infrastructure' operations.
 """
diff --git a/nomad/uploads.py b/nomad/files.py
similarity index 100%
rename from nomad/uploads.py
rename to nomad/files.py
diff --git a/nomad/processing/data.py b/nomad/processing/data.py
index 15df76ea7e7ac0032a2ce00131277494e09e1b30..552a87d9751dea3a90866e52499e4124870a1e06 100644
--- a/nomad/processing/data.py
+++ b/nomad/processing/data.py
@@ -31,7 +31,7 @@ from structlog import wrap_logger
 from contextlib import contextmanager
 
 from nomad import utils, coe_repo, datamodel
-from nomad.uploads import PathObject, ArchiveBasedStagingUploadFiles
+from nomad.files import PathObject, ArchiveBasedStagingUploadFiles
 from nomad.repo import RepoCalc, RepoUpload
 from nomad.processing.base import Proc, Chord, process, task, PENDING, SUCCESS, FAILURE
 from nomad.parsing import parsers, parser_dict
diff --git a/tests/processing/test_data.py b/tests/processing/test_data.py
index 41e3d21cc5db0b6a1f8c68c4076b05e49033872c..a9cd15ad6e14966755eb35c752554ea900a39fa8 100644
--- a/tests/processing/test_data.py
+++ b/tests/processing/test_data.py
@@ -26,15 +26,15 @@ import os.path
 import json
 
 from nomad import utils
-from nomad.uploads import ArchiveBasedStagingUploadFiles, UploadFiles, StagingUploadFiles
+from nomad.files import ArchiveBasedStagingUploadFiles, UploadFiles, StagingUploadFiles
 from nomad.processing import Upload, Calc
 from nomad.processing.base import task as task_decorator
 from nomad.repo import RepoUpload
 
-from tests.test_uploads import example_file, empty_file
+from tests.test_files import example_file, empty_file
 
 # import fixtures
-from tests.test_uploads import clear_files  # pylint: disable=unused-import
+from tests.test_files import clear_files  # pylint: disable=unused-import
 
 example_files = [empty_file, example_file]
 
diff --git a/tests/test_api.py b/tests/test_api.py
index a5bc8993a2c46e0e58c9bdc8f450c20cff7f3531..f5ed12c5e864c13458b13eb389874bae1476ae8d 100644
--- a/tests/test_api.py
+++ b/tests/test_api.py
@@ -29,13 +29,13 @@ services_config.update(api_base_path='')
 config.services = config.NomadServicesConfig(**services_config)
 
 from nomad import api, coe_repo  # noqa
-from nomad.uploads import UploadFiles, PublicUploadFiles  # noqa
+from nomad.files import UploadFiles, PublicUploadFiles  # noqa
 from nomad.processing import Upload, Calc  # noqa
 from nomad.coe_repo import User  # noqa
 
 from tests.processing.test_data import example_files  # noqa
-from tests.test_uploads import example_file, example_file_mainfile, example_file_contents  # noqa
-from tests.test_uploads import create_staging_upload, create_public_upload  # noqa
+from tests.test_files import example_file, example_file_mainfile, example_file_contents  # noqa
+from tests.test_files import create_staging_upload, create_public_upload  # noqa
 
 # import fixtures
 from tests.test_normalizing import normalized_template_example  # noqa pylint: disable=unused-import
diff --git a/tests/test_coe_repo.py b/tests/test_coe_repo.py
index 5f6f415daf8efb61fefe901f13760853ec2ab7fb..3b50188a8d1b7ce5b7488ffa4215bb4a6b4c011e 100644
--- a/tests/test_coe_repo.py
+++ b/tests/test_coe_repo.py
@@ -20,7 +20,7 @@ from nomad.coe_repo import User, Calc, Upload
 from tests.processing.test_data import processed_upload  # pylint: disable=unused-import
 from tests.processing.test_data import uploaded_id  # pylint: disable=unused-import
 from tests.processing.test_data import mocks_forall  # pylint: disable=unused-import
-from tests.test_uploads import clear_files  # pylint: disable=unused-import
+from tests.test_files import clear_files  # pylint: disable=unused-import
 
 
 def assert_user(user, reference):
diff --git a/tests/test_uploads.py b/tests/test_files.py
similarity index 98%
rename from tests/test_uploads.py
rename to tests/test_files.py
index 33d797427962cf3ba972fb0454d47e22e4265cc9..dfdc6536722453f8bf6d68a0de08fe1e7a02de8b 100644
--- a/tests/test_uploads.py
+++ b/tests/test_files.py
@@ -20,9 +20,9 @@ import pytest
 import json
 
 from nomad import config
-from nomad.uploads import DirectoryObject, PathObject
-from nomad.uploads import Metadata, MetadataTimeout, PublicMetadata, StagingMetadata
-from nomad.uploads import StagingUploadFiles, PublicUploadFiles, UploadFiles, Restricted, \
+from nomad.files import DirectoryObject, PathObject
+from nomad.files import Metadata, MetadataTimeout, PublicMetadata, StagingMetadata
+from nomad.files import StagingUploadFiles, PublicUploadFiles, UploadFiles, Restricted, \
     ArchiveBasedStagingUploadFiles
 
 
diff --git a/tests/test_repo.py b/tests/test_repo.py
index 2a47a163e1367d92404e634460eb99b134263f1a..d13ad56f86edb200748c7426b942b5f35b6c7958 100644
--- a/tests/test_repo.py
+++ b/tests/test_repo.py
@@ -20,7 +20,7 @@
 # from nomad.parsing import LocalBackend
 # from nomad.repo import AlreadyExists, RepoCalc
 
-# from tests.test_uploads import example_file  # noqa
+# from tests.test_files import example_file  # noqa
 # from tests.test_normalizing import normalized_template_example  # pylint: disable=unused-import
 # from tests.test_parsing import parsed_template_example  # pylint: disable=unused-import
 
diff --git a/tests_integration/test_client.py b/tests_integration/test_client.py
index ae78b90135761049f3b76abca7d26c923f2c4b8f..da37982081adb5411b860f1c6d770c3f17be1e64 100644
--- a/tests_integration/test_client.py
+++ b/tests_integration/test_client.py
@@ -16,7 +16,7 @@ import pytest
 
 from nomad.client import create_client, upload_file
 
-from tests.test_uploads import example_file
+from tests.test_files import example_file
 
 
 @pytest.fixture(scope='session')