Skip to main content

Invenio-Files-REST

https://github.com/inveniosoftware/invenio-files-rest/workflows/CI/badge.svg https://img.shields.io/coveralls/inveniosoftware/invenio-files-rest.svg https://img.shields.io/pypi/v/invenio-files-rest.svg https://img.shields.io/github/license/inveniosoftware/invenio-files-rest.svg

Invenio-Files-REST is a files storage module. It allows you to store and retrieve files in a similar way to Amazon S3 APIs.

Features:

  • Files storage with configurable storage backends

  • Secure REST APIs

  • Support for large file uploads and multipart upload.

  • Customizable access control

  • File integrity monitoring

Further documentation is available on https://invenio-files-rest.readthedocs.io/.

Changes

Version v3.5.1 (released 2026-10-16)

  • deps: pin setuptools to avoid pkg_resources failure

  • fix(sphinx): Ignoring ErrorHandler to prevent sphinx reference error

  • ci: fix python 3.13+ compatibility and docstrings

Version v3.4.1 (released 2025-10-20)

  • i18n: pull translations

Version v3.4.0 (released 2025-10-14)

  • models: adds index on version_id and bucket_id

Version v3.3.1 (released 2025-08-13)

  • fix: ensure that checksums have only one :
    • This behaviour was actually already enforced by the fact that FileStorage.send_file assumed that if a checksum value is present, it can be split on a : and the result unpacked into two values that are then used to set the md5 HTTP header.

Version v3.3.0 (released 2025-07-18)

  • fix(tests): invenio-admin entry-points handling

  • i18n: pulled translations

  • i18n: push translations

Version v3.2.0 (released 2025-06-06)

  • fix: always send Accept-Ranges header if ranges are enabled
    • The current Werkzeug version only sends the Accept-Ranges header when a Range header is provided by the caller. As a result, the caller cannot determine range support beforehand. This change ensures the header is always sent when ranges are enabled.

  • fix: pass werkzeug exceptions, such as RequestedRangeNotSatisfiable
    • Werkzeug performs Range header validation and raises an exception (HTTP 416) when it is invalid. We pass the exception to caller instead of raising generic HTTP 500 (StorageError)

Version v3.1.0 (released 2025-06-05)

  • Adds range request support for accessing files (#321)
    • Adds range request support for accessing files, delegated to werkzeug

  • fix(deps): Use sqlalchemy 2.0 compatible query syntax

  • fix: skip non-readable files on checksum verification
    • FileInstance can be marked as non-readable. Currently, even those instances are verified, which might raise an exception. This commit fixes that by adding readable=True to the default filter and changing the way the total size is computed to use this filter

  • fix: setuptools require underscores instead of dashes

Version 3.0.0 (release 2024-12-09)

  • filename: replace encoding/decoding

  • fix: alembic assert error

  • fix: max content type

  • fix: werkzeug changed raise handling for tests

  • fix: docs reference target not found

  • fix: filename is marked as byte

  • tests: apply changes for sqlalchemy>=2.0

  • setup: bump invenio dependencies

Version 2.2.4 (release 2024-12-04)

  • workflows: add translation flag for publishing

Version 2.2.3 (release 2024-11-28)

  • setup: pin dependencies

Version 2.2.2 (release 2024-11-05)

  • fix: LegacyAPIWarning of sqlalchemy

  • global: move to db.session.query syntax

  • fix: compatibility with werkzeug >= 3.0.0

Version 2.2.1 (release 2024-09-19)

  • fix: downloading for some weird filenames

  • i18n: push translations

Version 2.2.0 (release 2024-01-18)

  • Bump for skipping yanked v2.1.0 release

Version 2.1.0 (release 2024-01-18)

  • models: add copy_from method to ObjectVersion

Version 2.0.3 (release 2023-12-14)

  • files: avoid creating directories while opening files for reading

Version 2.0.2 (release 2023-11-01)

  • pyfs: fix computing parent folder path on delete action

Version 2.0.1 (release 2023-10-02)

  • models: handle bucket quota update on delete

  • models: update bucket size on object version delete

  • storage: pyfs handle file upload interruption

Version 2.0.0 (release 2023-08-15)

  • models: Bucket.sync method now returns a tuple of (bucket, list_of_changes) instead of bucket. That is a breaking change if you were consuming the return value.

Version 1.5.0 (release 2023-03-02)

  • remove deprecated flask-babelex dependency and imports

  • install invenio-i18n

Version 1.4.0 (release 2023-01-24)

  • tasks: add orphan cleaning celery task

Version 1.3.3 (release 2022-04-06)

  • Fix Flask v2.1 issues.

  • Refactor dependencies to respect Invenio dependency strategy and remove pin on Flask-Login.

Version 1.3.2 (release 2022-02-14)

  • Fix deprecation warnings from marshmallow.

Version 1.3.1 (release 2022-01-31)

  • Fix a race-condition by enforcing integrity constraint on is head. An issue was detected that could produce two head versions of the same object. This fix adds a partial index in PostgreSQL to ensure that the race condition throws an integrity error when trying to commit. Partial indexes is only available on PostgreSQL.

  • Fix for the sync method and signals signature.

Version 1.3.0 (released 2021-10-18)

  • Bumped minimum PyFilesystem dependency to v2. Note that, setuptools v58+ have dropped support for use2to3, thus PyFilesystem v0.5.5 no longer installs on Python 3 when using setuptools v58 or greater.

Version 1.2.0 (released 2020-05-14)

  • Adds optional file streaming using a reverse proxy (e.g. NGINX).

Version 1.1.1 (released 2020-02-24)

  • Makes cli location command backwards compatible.

Version 1.1.0 (released 2020-01-19)

  • Moves location from command to group

  • Allows listing locations via de CLI

  • Allows setting a location as default

  • Get by name on the Location object returns None when not found instead of raising an exception

  • Other bug fixes

Version 1.0.6 (released 2019-11-22)

  • Bump version and add to installation requirements invenio-celery

  • Add documentation of module usage

  • Remove storage_class parameter from Bucket create when POST to Location resource

Version 1.0.5 (released 2019-11-21)

  • Add signals for deletion and upload of files

Version 1.0.4 (released 2019-11-20)

  • Fix StorageError type returned

Version 1.0.3 (released 2019-11-15)

  • Increase invenio-rest version to support Marshmallow 2 and 3 migration

Version 1.0.2 (released 2019-11-14)

  • Adds optional serializer_mapping and view_name in json_serializer method

Version 1.0.1 (released 2019-08-01)

  • Adds support for marshmallow 2 and 3.

Version 1.0.0 (released 2019-07-22)

  • Initial public release.

Metadata

Release files for invenio-files-rest 3.5.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for invenio-files-rest 3.5.1
File Size Uploaded
invenio_files_rest-3.5.1.tar.gz 87.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for invenio-files-rest 3.5.1
File Interpreter ABI Platform
invenio_files_rest-3.5.1-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 231.8 kB

Release files / invenio_files_rest-3.5.1.tar.gz

Download URL invenio_files_rest-3.5.1.tar.gz
Size 87.6 kB
Tags Source
SHA-256 checksum
How to use checksums
39c37299ebb41892f3bbb81a49c53c0741d1ae6377c3853d39c63df3acd3224e
BLAKE2b-256 checksum
How to use checksums
7a5f219c5d99483c881a6f25d34fe8a9340d68df866c84ce36d70cb516c932c7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / invenio_files_rest-3.5.1-py2.py3-none-any.whl

Download URL invenio_files_rest-3.5.1-py2.py3-none-any.whl
Size 144.1 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
26afc332ceb934d4d272906ee11bcafaec044a603ae58fec9c124754cbb678f6
BLAKE2b-256 checksum
How to use checksums
966fb7ab2d117191243dce429c3f6182798adc14e97c417fd9e1388bd982f4cc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

6.1.0

2 release files

6.0.1

2 release files

6.0.0

2 release files

5.1.1

2 release files

5.1.0

2 release files

5.0.2

2 release files

5.0.1

2 release files

5.0.0

2 release files

4.1.0

2 release files

4.0.0

2 release files

This release

3.5.1 This release

2 release files

3.4.1

2 release files

3.4.0

2 release files

3.3.1

2 release files

3.3.0

2 release files

3.2.0

2 release files

3.1.0

2 release files

3.0.0

2 release files

2.4.0

2 release files

2.3.0

2 release files

2.2.4

2 release files

2.2.3

2 release files

2.2.2

2 release files

2.2.1

2 release files

2.2.0

2 release files

2.1.0

2 release files

2.0.3

2 release files

2.0.2

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.5.0

2 release files

1.4.0

2 release files

1.3.3

2 release files

1.3.2

2 release files

1.3.1

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.8

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page