Added
- Support direct uploads with
#direct_upload, where the client sends the file straight to the storage service and the bytes never pass through the application (@mshibuya 1677465) - Support cache ids which were made outside CarrierWave, by overriding
#parse_cache_id(@mshibuya ed90d7f) - Support mounting a file which is already in the store with
#{column}_identifier=and#adopt!, for when something other than CarrierWave put it there (@mshibuya d12660d) - Support customising how a download resolves and connects, such as preferring IPv4, with the
ssrf_filter_optionsconfiguration passed to SsrfFilter (@kaibadash #2813) - Support storing to a bucket which has ACLs disabled, and setting the ACL apart from
fog_public, with thefog_aclconfiguration (@stanhu #2811)
Deprecated
- Deprecate passing a block to
#convert,#resize_to_limit,#resize_to_fit,#resize_to_fill,#resize_and_padand#cropto receive aMiniMagick::Image. Use#manipulate!for aMiniMagick::Image, or#minimagick!for the ImageProcessing builder (@mshibuya acc722d)
Fixed
- Fix a refused file going unreported when the record is saved through an association, so that the save appeared to succeed without it (@mshibuya c7cd6e5, #2727)
- Fix assigning a refused file deleting the one which was already stored (@mshibuya 1cfb5f8)
- Fix an upload whose filename carries a NUL byte raising
ArgumentErrorinstead of being accepted (@mshibuya 246ff3b) - Fix an upload whose filename is longer than the filesystem takes raising
Errno::ENAMETOOLONG, which now fails validation instead (@mshibuya c34c0d5) - Fix caching a file which carries no name of its own, such as a bare
StringIO, raisingTypeError(@mshibuya 2b0a12e, #1831) - Fix
InvalidParameterwhen caching or manipulating a version of a file which came from the store rather than the cache (@mshibuya, @SergeyProger 0d00f7e, #2798) - Fix a file keeping its old extension after
#manipulate!changed its format (@mshibuya cd0686f, #2714) - Fix a cache name which is only a cache id, as a direct upload can leave behind, being taken for a directory instead of the file (@mshibuya b9f8c62)
- Fix an uploader which picks its storage per file caching somewhere other than where it stores (@mshibuya 81da3b8)
- Fix obsolete warnings from
URI::RFC3986_PARSER#escapeand#unescape(@mshibuya b3d77e6, #2796) - Fix storing a Fog file to where it already is being refused by S3 (@mshibuya 229fdfc)
- Fix
clean_cached_files!removing files outside the cache directory which merely look like a cache (@mshibuya f4691e6) - Fix the remove callbacks being run for a mounted column which had no file (@mshibuya b038f12)