Skip to content

Releases: etalab/flask-storage

v2.1.2

Choose a tag to compare

@maudetes maudetes released this 04 Nov 13:48
v2.1.2
755952d
  • feat(s3): add a use_threads config (#33)

v2.1.1

Choose a tag to compare

@ThibaudDauce ThibaudDauce released this 27 Oct 09:13
  • feat: allow pillow 13 (#32)

v2.1.0

Choose a tag to compare

@ThibaudDauce ThibaudDauce released this 26 Oct 14:47
  • feat: add webp to images (#29)
  • fix(local): anchor relative FS_ROOT to CWD for all code paths (#30)
  • fix(s3): store SVG files as attachments, so opening one never runs its scripts (#31)

v2.0.3

Choose a tag to compare

@ThibaudDauce ThibaudDauce released this 07 Oct 12:58
  • feat(s3): only create missing buckets when CREATE_BUCKET is set, so startup does not depend on S3 (#28)

v2.0.2

Choose a tag to compare

@ThibaudDauce ThibaudDauce released this 06 Oct 12:16
  • fix: give compressed files the archive mime type instead of their content one (#27)

v2.0.1

Choose a tag to compare

@ThibaudDauce ThibaudDauce released this 27 Aug 12:53
  • ci: do not run a second pipeline on tags, which raced the branch one to publish (#26)
  • fix(s3): upload without spawning a thread pool per transfer (#25)

v2.0.0

Choose a tag to compare

@ThibaudDauce ThibaudDauce released this 20 Aug 12:34
  • feat(s3)!: stream uploads with upload_fileobj for S3 instead of a single PUT and remove fake checksum returned (#24)
    save() used to read the whole file in memory before a single PUT, so
    an upload was bounded by the RAM of the worker and by the 5GB limit of a
    PUT. It now goes through upload_fileobj, which reads the file by
    blocks and switches to a multipart upload past 8MB.

    It also asks S3 to checksum what it receives, so a corrupted transfer is
    rejected and metadata() still reports a digest of the content whatever
    the number of parts it travelled in. It's a CRC32, the only algorithm S3
    combines over a whole object. checksum is None only for objects
    written before this.

    Checked against the OVH bucket: a 12MB upload comes back with
    ChecksumType: FULL_OBJECT and its CRC32, and a wrong digest is
    rejected with BadDigest.

v1.4.6

Choose a tag to compare

@ThibaudDauce ThibaudDauce released this 05 Aug 08:39
  • fix: do not deep copy the storage when mongoengine copies a FileField (#23)

v1.4.5

Choose a tag to compare

@maudetes maudetes released this 24 Jun 08:56
  • chore: apply ruff (#22)
  • chore: switch to uv and tag version script (#21)
  • feat: allow setting a prefix for all files (#20)
  • fix: delete filename always by prefix in S3 (#19)
  • fix(s3): fix content type if not guessed (#18)
  • Update to version 1.4.5.dev for next development cycle