shrine 2.14.0 → 2.15.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of shrine might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CHANGELOG.md +384 -374
- data/README.md +132 -63
- data/doc/advantages.md +191 -109
- data/doc/attacher.md +1 -1
- data/doc/carrierwave.md +4 -4
- data/doc/creating_storages.md +2 -2
- data/doc/design.md +2 -2
- data/doc/direct_s3.md +3 -3
- data/doc/metadata.md +1 -1
- data/doc/multiple_files.md +2 -2
- data/doc/paperclip.md +3 -3
- data/doc/plugins/activerecord.md +92 -0
- data/doc/plugins/add_metadata.md +93 -0
- data/doc/plugins/backgrounding.md +148 -0
- data/doc/plugins/backup.md +29 -0
- data/doc/plugins/cached_attachment_data.md +23 -0
- data/doc/plugins/copy.md +22 -0
- data/doc/plugins/data_uri.md +92 -0
- data/doc/plugins/default_storage.md +16 -0
- data/doc/plugins/default_url.md +33 -0
- data/doc/plugins/default_url_options.md +22 -0
- data/doc/plugins/delete_promoted.md +10 -0
- data/doc/plugins/delete_raw.md +16 -0
- data/doc/plugins/derivation_endpoint.md +747 -0
- data/doc/plugins/determine_mime_type.md +64 -0
- data/doc/plugins/direct_upload.md +170 -0
- data/doc/plugins/download_endpoint.md +83 -0
- data/doc/plugins/dynamic_storage.md +20 -0
- data/doc/plugins/hooks.md +56 -0
- data/doc/plugins/included.md +15 -0
- data/doc/plugins/infer_extension.md +57 -0
- data/doc/plugins/keep_files.md +20 -0
- data/doc/plugins/logging.md +39 -0
- data/doc/plugins/metadata_attribues.md +43 -0
- data/doc/plugins/migration_helpers.md +58 -0
- data/doc/plugins/module_include.md +40 -0
- data/doc/plugins/moving.md +17 -0
- data/doc/plugins/multi_delete.md +18 -0
- data/doc/plugins/parallelize.md +14 -0
- data/doc/plugins/parsed_json.md +9 -0
- data/doc/plugins/presign_endpoint.md +133 -0
- data/doc/plugins/pretty_location.md +29 -0
- data/doc/plugins/processing.md +68 -0
- data/doc/plugins/rack_file.md +49 -0
- data/doc/plugins/rack_response.md +96 -0
- data/doc/plugins/recache.md +27 -0
- data/doc/plugins/refresh_metadata.md +31 -0
- data/doc/plugins/remote_url.md +104 -0
- data/doc/plugins/remove_attachment.md +16 -0
- data/doc/plugins/remove_invalid.md +9 -0
- data/doc/plugins/restore_cached_data.md +14 -0
- data/doc/plugins/sequel.md +64 -0
- data/doc/plugins/signature.md +49 -0
- data/doc/plugins/store_dimensions.md +68 -0
- data/doc/plugins/tempfile.md +40 -0
- data/doc/plugins/upload_endpoint.md +123 -0
- data/doc/plugins/upload_options.md +28 -0
- data/doc/plugins/validation_helpers.md +129 -0
- data/doc/plugins/versions.md +179 -0
- data/doc/processing.md +217 -247
- data/doc/refile.md +3 -3
- data/doc/release_notes/1.0.0.md +143 -0
- data/doc/release_notes/1.1.0.md +184 -0
- data/doc/release_notes/1.2.0.md +37 -0
- data/doc/release_notes/1.3.0.md +90 -0
- data/doc/release_notes/1.4.0.md +167 -0
- data/doc/release_notes/1.4.1.md +9 -0
- data/doc/release_notes/1.4.2.md +20 -0
- data/doc/release_notes/2.0.0.md +173 -0
- data/doc/release_notes/2.0.1.md +12 -0
- data/doc/release_notes/2.1.0.md +59 -0
- data/doc/release_notes/2.1.1.md +8 -0
- data/doc/release_notes/2.10.0.md +52 -0
- data/doc/release_notes/2.10.1.md +6 -0
- data/doc/release_notes/2.11.0.md +69 -0
- data/doc/release_notes/2.12.0.md +65 -0
- data/doc/release_notes/2.13.0.md +146 -0
- data/doc/release_notes/2.14.0.md +278 -0
- data/doc/release_notes/2.15.0.md +82 -0
- data/doc/release_notes/2.2.0.md +98 -0
- data/doc/release_notes/2.3.0.md +50 -0
- data/doc/release_notes/2.3.1.md +10 -0
- data/doc/release_notes/2.4.0.md +87 -0
- data/doc/release_notes/2.4.1.md +29 -0
- data/doc/release_notes/2.5.0.md +130 -0
- data/doc/release_notes/2.6.0.md +254 -0
- data/doc/release_notes/2.6.1.md +14 -0
- data/doc/release_notes/2.7.0.md +180 -0
- data/doc/release_notes/2.8.0.md +95 -0
- data/doc/release_notes/2.9.0.md +82 -0
- data/doc/retrieving_uploads.md +1 -1
- data/doc/storage/file_system.md +96 -0
- data/doc/storage/s3.md +293 -0
- data/doc/validation.md +1 -1
- data/lib/shrine/plugins/_urlsafe_serialization.rb +33 -125
- data/lib/shrine/plugins/activerecord.rb +0 -78
- data/lib/shrine/plugins/add_metadata.rb +0 -80
- data/lib/shrine/plugins/backgrounding.rb +0 -134
- data/lib/shrine/plugins/backup.rb +0 -22
- data/lib/shrine/plugins/cached_attachment_data.rb +0 -15
- data/lib/shrine/plugins/copy.rb +0 -14
- data/lib/shrine/plugins/data_uri.rb +0 -73
- data/lib/shrine/plugins/default_storage.rb +0 -11
- data/lib/shrine/plugins/default_url.rb +0 -25
- data/lib/shrine/plugins/default_url_options.rb +0 -16
- data/lib/shrine/plugins/delete_promoted.rb +0 -6
- data/lib/shrine/plugins/delete_raw.rb +0 -10
- data/lib/shrine/plugins/derivation_endpoint.rb +652 -0
- data/lib/shrine/plugins/determine_mime_type.rb +1 -85
- data/lib/shrine/plugins/direct_upload.rb +0 -155
- data/lib/shrine/plugins/download_endpoint.rb +11 -73
- data/lib/shrine/plugins/dynamic_storage.rb +0 -17
- data/lib/shrine/plugins/hooks.rb +0 -48
- data/lib/shrine/plugins/included.rb +0 -12
- data/lib/shrine/plugins/infer_extension.rb +0 -49
- data/lib/shrine/plugins/keep_files.rb +0 -19
- data/lib/shrine/plugins/logging.rb +0 -39
- data/lib/shrine/plugins/metadata_attributes.rb +0 -35
- data/lib/shrine/plugins/migration_helpers.rb +0 -50
- data/lib/shrine/plugins/module_include.rb +0 -32
- data/lib/shrine/plugins/moving.rb +0 -12
- data/lib/shrine/plugins/multi_delete.rb +0 -13
- data/lib/shrine/plugins/parallelize.rb +0 -8
- data/lib/shrine/plugins/parsed_json.rb +0 -5
- data/lib/shrine/plugins/presign_endpoint.rb +2 -117
- data/lib/shrine/plugins/pretty_location.rb +0 -22
- data/lib/shrine/plugins/processing.rb +0 -55
- data/lib/shrine/plugins/rack_file.rb +0 -39
- data/lib/shrine/plugins/rack_response.rb +0 -81
- data/lib/shrine/plugins/recache.rb +0 -21
- data/lib/shrine/plugins/refresh_metadata.rb +0 -24
- data/lib/shrine/plugins/remote_url.rb +0 -85
- data/lib/shrine/plugins/remove_attachment.rb +0 -10
- data/lib/shrine/plugins/remove_invalid.rb +0 -6
- data/lib/shrine/plugins/restore_cached_data.rb +0 -10
- data/lib/shrine/plugins/sequel.rb +0 -54
- data/lib/shrine/plugins/signature.rb +0 -37
- data/lib/shrine/plugins/store_dimensions.rb +0 -63
- data/lib/shrine/plugins/tempfile.rb +4 -35
- data/lib/shrine/plugins/upload_endpoint.rb +2 -109
- data/lib/shrine/plugins/upload_options.rb +0 -20
- data/lib/shrine/plugins/validation_helpers.rb +0 -36
- data/lib/shrine/plugins/versions.rb +0 -156
- data/lib/shrine/storage/file_system.rb +0 -77
- data/lib/shrine/storage/s3.rb +0 -249
- data/lib/shrine/version.rb +1 -1
- data/shrine.gemspec +2 -2
- metadata +86 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aa6d199c94a3b0f6454d8423cc1ae63e31c78979328b064364abc8119ce9c98b
|
4
|
+
data.tar.gz: c384cee91997dfa2927938d959362982274adf6befc1ffe1d98be6605f4c4206
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 904c4b61e43102efbc95dbfff02e16af95df2d88fd2ce68a29fa54dff82e512f5801f671eb865527ed892fd34905448871fb120e6133955d20d87f5568c3f5d7
|
7
|
+
data.tar.gz: e7742141f3693e862a5d13aa0752b59820415ca9bbf62674842730b3962a1452b71c33ea631dd65bec9e0b16aef189387bb545d958edeb80e707d506385e8c3f
|
data/CHANGELOG.md
CHANGED
@@ -1,68 +1,78 @@
|
|
1
|
+
## 2.15.0 (2019-02-08)
|
2
|
+
|
3
|
+
* Add `derivation_endpoint` plugin for processing uploaded files on-the-fly (@janko)
|
4
|
+
|
5
|
+
* Allow Marcel to fall back to the file extension in `determine_mime_type` plugin (@skarlcf)
|
6
|
+
|
7
|
+
* Don't return cached app instance in `Shrine.download_endpoint` in `download_endpoint` plugin (@janko)
|
8
|
+
|
9
|
+
* Yield a new File object on `Shrine.with_file` when `tempfile` plugin is loaded (@janko)
|
10
|
+
|
1
11
|
## 2.14.0 (2018-12-27)
|
2
12
|
|
3
|
-
* Add `tempfile` plugin for easier reusing of the same uploaded file copy on disk (@janko
|
13
|
+
* Add `tempfile` plugin for easier reusing of the same uploaded file copy on disk (@janko)
|
4
14
|
|
5
|
-
* Don't re-open the uploaded file if it's already open in `refresh_metadata` plugin (@janko
|
15
|
+
* Don't re-open the uploaded file if it's already open in `refresh_metadata` plugin (@janko)
|
6
16
|
|
7
|
-
* Drop support for MRI 2.1 and 2.2 (@janko
|
17
|
+
* Drop support for MRI 2.1 and 2.2 (@janko)
|
8
18
|
|
9
|
-
* Fix `backgrounding` not working when default storage was changed with `Attachment.new` (@janko
|
19
|
+
* Fix `backgrounding` not working when default storage was changed with `Attachment.new` (@janko)
|
10
20
|
|
11
|
-
* Don't clear existing metadata definitions when loading `add_metadata` plugin (@janko
|
21
|
+
* Don't clear existing metadata definitions when loading `add_metadata` plugin (@janko)
|
12
22
|
|
13
|
-
* Don't clear existing processing blocks when loading `processing` plugin (@janko
|
23
|
+
* Don't clear existing processing blocks when loading `processing` plugin (@janko)
|
14
24
|
|
15
|
-
* Deprecate automatic escaping of `:content_disposition` in `Shrine::Storage::S3` (@janko
|
25
|
+
* Deprecate automatic escaping of `:content_disposition` in `Shrine::Storage::S3` (@janko)
|
16
26
|
|
17
|
-
* Use `content_disposition` gem in `Shrine::Storage::S3` and `rack_response` plugin (@janko
|
27
|
+
* Use `content_disposition` gem in `Shrine::Storage::S3` and `rack_response` plugin (@janko)
|
18
28
|
|
19
|
-
* Make `FileSystem#clear!` work correctly when the storage directory is a symlink (@janko
|
29
|
+
* Make `FileSystem#clear!` work correctly when the storage directory is a symlink (@janko)
|
20
30
|
|
21
|
-
* Don't abort promotion in `backgrounding` plugin when original metadata was updated (@janko
|
31
|
+
* Don't abort promotion in `backgrounding` plugin when original metadata was updated (@janko)
|
22
32
|
|
23
|
-
* Don't mutate the `UploadedFile` data hash in `refresh_metadata` plugin (@janko
|
33
|
+
* Don't mutate the `UploadedFile` data hash in `refresh_metadata` plugin (@janko)
|
24
34
|
|
25
|
-
* Deprecate `Storage::S3#download` (@janko
|
35
|
+
* Deprecate `Storage::S3#download` (@janko)
|
26
36
|
|
27
|
-
* Stop using `Storage#download` in `UploadedFile#download` for peformance (@janko
|
37
|
+
* Stop using `Storage#download` in `UploadedFile#download` for peformance (@janko)
|
28
38
|
|
29
|
-
* Remove `#download` from the Shrine storage specification (@janko
|
39
|
+
* Remove `#download` from the Shrine storage specification (@janko)
|
30
40
|
|
31
|
-
* Keep `context` argument in `#extract_metadata` optional after loading `add_metadata` plugin (@janko
|
41
|
+
* Keep `context` argument in `#extract_metadata` optional after loading `add_metadata` plugin (@janko)
|
32
42
|
|
33
|
-
* Include metadata key with `nil` value when `nil` is returned in `add_metadata` block (@janko
|
43
|
+
* Include metadata key with `nil` value when `nil` is returned in `add_metadata` block (@janko)
|
34
44
|
|
35
45
|
* Strip query params in upload location when re-uploading from `shrine-url` storage (@jrochkind)
|
36
46
|
|
37
47
|
* Inline Base plugin into core classes, extract them to separate files (@printercu)
|
38
48
|
|
39
|
-
* Make `rack_response` plugin work with `Rack::Sendfile` for `FileSystem` storage (@janko
|
49
|
+
* Make `rack_response` plugin work with `Rack::Sendfile` for `FileSystem` storage (@janko)
|
40
50
|
|
41
|
-
* Add `:filename` and `:type` options to `rack_response` plugin (@janko
|
51
|
+
* Add `:filename` and `:type` options to `rack_response` plugin (@janko)
|
42
52
|
|
43
|
-
* Add `:host` option to `UploadedFile#download_url` in `download_endpoint` plugin (@janko
|
53
|
+
* Add `:host` option to `UploadedFile#download_url` in `download_endpoint` plugin (@janko)
|
44
54
|
|
45
|
-
* Add support for client-side encryption to S3 storage (@janko
|
55
|
+
* Add support for client-side encryption to S3 storage (@janko)
|
46
56
|
|
47
57
|
* Don't look up the attachment class in each new model instance (@printercu)
|
48
58
|
|
49
59
|
* Allow `Attacher#cached?` and `Attacher#stored?` to take an `UploadedFile` object (@jrochkind)
|
50
60
|
|
51
|
-
* Allow assigning a filename to the `DataFile` object in `Shrine.data_uri` (@janko
|
61
|
+
* Allow assigning a filename to the `DataFile` object in `Shrine.data_uri` (@janko)
|
52
62
|
|
53
|
-
* Don't strip media type parameters for the `DataFile` object in `data_uri` plugin (@janko
|
63
|
+
* Don't strip media type parameters for the `DataFile` object in `data_uri` plugin (@janko)
|
54
64
|
|
55
|
-
* Add `:content_type` analyzer to `Shrine.mime_type_analyzers` in `determine_mime_type` plugin (@janko
|
65
|
+
* Add `:content_type` analyzer to `Shrine.mime_type_analyzers` in `determine_mime_type` plugin (@janko)
|
56
66
|
|
57
|
-
* Rename `:default` analyzer to `:content_type` in `determine_mime_type` plugin (@janko
|
67
|
+
* Rename `:default` analyzer to `:content_type` in `determine_mime_type` plugin (@janko)
|
58
68
|
|
59
|
-
* Don't display a warning when `determine_mime_type` plugin is loaded with `:default` analyzer (@janko
|
69
|
+
* Don't display a warning when `determine_mime_type` plugin is loaded with `:default` analyzer (@janko)
|
60
70
|
|
61
|
-
* Exclude media type parameters when copying `IO#content_type` into `mime_type` metadata (@janko
|
71
|
+
* Exclude media type parameters when copying `IO#content_type` into `mime_type` metadata (@janko)
|
62
72
|
|
63
|
-
* Remove superfluous `#head_object` S3 API call in `S3#download` (@janko
|
73
|
+
* Remove superfluous `#head_object` S3 API call in `S3#download` (@janko)
|
64
74
|
|
65
|
-
* Make `S3#download` and `S3#open` work with server side encryption options (@janko
|
75
|
+
* Make `S3#download` and `S3#open` work with server side encryption options (@janko)
|
66
76
|
|
67
77
|
* Make previously extracted metadata available under `:metadata` in `add_metadata` plugin (@jrochkind)
|
68
78
|
|
@@ -70,39 +80,39 @@
|
|
70
80
|
|
71
81
|
## 2.13.0 (2018-11-04)
|
72
82
|
|
73
|
-
* Specify UTF-8 charset in `Content-Type` response header in `presign_endpoint` plugin (@janko
|
83
|
+
* Specify UTF-8 charset in `Content-Type` response header in `presign_endpoint` plugin (@janko)
|
74
84
|
|
75
|
-
* Specify UTF-8 charset in `Content-Type` response header in `upload_endpoint` plugin (@janko
|
85
|
+
* Specify UTF-8 charset in `Content-Type` response header in `upload_endpoint` plugin (@janko)
|
76
86
|
|
77
|
-
* Force UTF-8 encoding on filenames coming from Rack's multipart request params in `rack_file` plugin (@janko
|
87
|
+
* Force UTF-8 encoding on filenames coming from Rack's multipart request params in `rack_file` plugin (@janko)
|
78
88
|
|
79
|
-
* Raise `Shrine::Error` if `file` command returns error in stdout in `determine_mime_type` plugin (@janko
|
89
|
+
* Raise `Shrine::Error` if `file` command returns error in stdout in `determine_mime_type` plugin (@janko)
|
80
90
|
|
81
|
-
* Allow `:host` in `S3#url` to specify a host URL with an additional path prefix (@janko
|
91
|
+
* Allow `:host` in `S3#url` to specify a host URL with an additional path prefix (@janko)
|
82
92
|
|
83
|
-
* Revert adding bucket name to URL path in `S3#url` when `:host` is used with `:force_path_style` (@janko
|
93
|
+
* Revert adding bucket name to URL path in `S3#url` when `:host` is used with `:force_path_style` (@janko)
|
84
94
|
|
85
|
-
* In `upload_endpoint` error with "Upload Not Valid" when `file` parameter is present but not a file (@janko
|
95
|
+
* In `upload_endpoint` error with "Upload Not Valid" when `file` parameter is present but not a file (@janko)
|
86
96
|
|
87
|
-
* Allow `Attacher#assign` to accept options for `Shrine#upload` (@janko
|
97
|
+
* Allow `Attacher#assign` to accept options for `Shrine#upload` (@janko)
|
88
98
|
|
89
|
-
* Add `:metadata` option to `Shrine#upload` for manually overriding extracted metadata (@janko
|
99
|
+
* Add `:metadata` option to `Shrine#upload` for manually overriding extracted metadata (@janko)
|
90
100
|
|
91
101
|
* Add `:force` option to `infer_extension` plugin for always replacing the current extension (@jrochkind)
|
92
102
|
|
93
|
-
* Add `:public` option to `S3#initialize` for enabling public uploads (@janko
|
103
|
+
* Add `:public` option to `S3#initialize` for enabling public uploads (@janko)
|
94
104
|
|
95
|
-
* Add ability to specify a custom `:signer` for `Shrine::Storage::S3#url` (@janko
|
105
|
+
* Add ability to specify a custom `:signer` for `Shrine::Storage::S3#url` (@janko)
|
96
106
|
|
97
|
-
* In `S3#upload` do multipart upload for large non-file IO objects (@janko
|
107
|
+
* In `S3#upload` do multipart upload for large non-file IO objects (@janko)
|
98
108
|
|
99
|
-
* In `S3#upload` switch to `Aws::S3::Object#upload_stream` for multipart uploads of IO objects of unknown size (@janko
|
109
|
+
* In `S3#upload` switch to `Aws::S3::Object#upload_stream` for multipart uploads of IO objects of unknown size (@janko)
|
100
110
|
|
101
|
-
* In `S3#upload` deprecate using aws-sdk-s3 lower than 1.14 when uploading IO objects of unknown size (@janko
|
111
|
+
* In `S3#upload` deprecate using aws-sdk-s3 lower than 1.14 when uploading IO objects of unknown size (@janko)
|
102
112
|
|
103
113
|
## 2.12.0 (2018-08-22)
|
104
114
|
|
105
|
-
* Ignore nil values when assigning files from a remote URL (@janko
|
115
|
+
* Ignore nil values when assigning files from a remote URL (@janko)
|
106
116
|
|
107
117
|
* Ignore nil values when assigning files from a data URI (@GeekOnCoffee)
|
108
118
|
|
@@ -110,51 +120,51 @@
|
|
110
120
|
|
111
121
|
* Use the appropriate unit in error messages of filesize validators in `validation_helpers` plugin (@hmistry)
|
112
122
|
|
113
|
-
* Fix subclassing not inheriting storage resolvers from superclass in `dynamic_storage` plugin (@janko
|
123
|
+
* Fix subclassing not inheriting storage resolvers from superclass in `dynamic_storage` plugin (@janko)
|
114
124
|
|
115
|
-
* Un-deprecate assigning cached versions (@janko
|
125
|
+
* Un-deprecate assigning cached versions (@janko)
|
116
126
|
|
117
|
-
* Add `Attacher#assign_remote_url` which allows dynamically passing downloader options (@janko
|
127
|
+
* Add `Attacher#assign_remote_url` which allows dynamically passing downloader options (@janko)
|
118
128
|
|
119
|
-
* Deprecate `:storages` option in `download_endpoint` plugin in favour of `UploadedFile#download_url` (@janko
|
129
|
+
* Deprecate `:storages` option in `download_endpoint` plugin in favour of `UploadedFile#download_url` (@janko)
|
120
130
|
|
121
|
-
* Add `:redirect` option to `download_endpoint` plugin for redirecting to the uploaded file (@janko
|
131
|
+
* Add `:redirect` option to `download_endpoint` plugin for redirecting to the uploaded file (@janko)
|
122
132
|
|
123
|
-
* Fix encoding issues when uploading IO object with unknown size to S3 (@janko
|
133
|
+
* Fix encoding issues when uploading IO object with unknown size to S3 (@janko)
|
124
134
|
|
125
|
-
* Accept additional `File.open` arguments in `FileSystem#open` (@janko
|
135
|
+
* Accept additional `File.open` arguments in `FileSystem#open` (@janko)
|
126
136
|
|
127
|
-
* Add `:rewindable` option to `S3#open` for disabling caching of read content to disk (@janko
|
137
|
+
* Add `:rewindable` option to `S3#open` for disabling caching of read content to disk (@janko)
|
128
138
|
|
129
|
-
* Make `UploadedFile#open` always open a new IO object and close the previous one (@janko
|
139
|
+
* Make `UploadedFile#open` always open a new IO object and close the previous one (@janko)
|
130
140
|
|
131
141
|
## 2.11.0 (2018-04-28)
|
132
142
|
|
133
|
-
* Add `Shrine.with_file` for temporarily converting an IO-like object into a file (@janko
|
143
|
+
* Add `Shrine.with_file` for temporarily converting an IO-like object into a file (@janko)
|
134
144
|
|
135
|
-
* Add `:method` value to the `S3#presign` result indicating the HTTP verb that should be used (@janko
|
145
|
+
* Add `:method` value to the `S3#presign` result indicating the HTTP verb that should be used (@janko)
|
136
146
|
|
137
|
-
* Add ability to specify `method: :put` in `S3#presign` to generate data for PUT upload (@janko
|
147
|
+
* Add ability to specify `method: :put` in `S3#presign` to generate data for PUT upload (@janko)
|
138
148
|
|
139
|
-
* Return a `Struct` instead of a `Aws::S3::PresignedPost` object in `S3#presign` (@janko
|
149
|
+
* Return a `Struct` instead of a `Aws::S3::PresignedPost` object in `S3#presign` (@janko)
|
140
150
|
|
141
|
-
* Deprecate `Storage#presign` returning a custom object in `presign_endpoint` (@janko
|
151
|
+
* Deprecate `Storage#presign` returning a custom object in `presign_endpoint` (@janko)
|
142
152
|
|
143
|
-
* Allow `Storage#presign` to return a Hash in `presign_endpoint` (@janko
|
153
|
+
* Allow `Storage#presign` to return a Hash in `presign_endpoint` (@janko)
|
144
154
|
|
145
|
-
* Add ability to specify upload checksum in `upload_endpoint` plugin (@janko
|
155
|
+
* Add ability to specify upload checksum in `upload_endpoint` plugin (@janko)
|
146
156
|
|
147
|
-
* Don't raise exception in `:mini_magick` and `:ruby_vips` dimensions analyzers when image is invalid (@janko
|
157
|
+
* Don't raise exception in `:mini_magick` and `:ruby_vips` dimensions analyzers when image is invalid (@janko)
|
148
158
|
|
149
|
-
* Don't remove bucket name from S3 URL path with `:host` when `:force_path_style` is set (@janko
|
159
|
+
* Don't remove bucket name from S3 URL path with `:host` when `:force_path_style` is set (@janko)
|
150
160
|
|
151
|
-
* Correctly determine MIME type from extension of empty files (@janko
|
161
|
+
* Correctly determine MIME type from extension of empty files (@janko)
|
152
162
|
|
153
|
-
* Modify `UploadedFile#download` not to reopen the uploaded file if it's already open (@janko
|
163
|
+
* Modify `UploadedFile#download` not to reopen the uploaded file if it's already open (@janko)
|
154
164
|
|
155
|
-
* Add `UploadedFile#stream` for streaming content into a writable object (@janko
|
165
|
+
* Add `UploadedFile#stream` for streaming content into a writable object (@janko)
|
156
166
|
|
157
|
-
* Deprecate `direct_upload` plugin in favor of `upload_endpoint` and `presign_endpoint` plugins (@janko
|
167
|
+
* Deprecate `direct_upload` plugin in favor of `upload_endpoint` and `presign_endpoint` plugins (@janko)
|
158
168
|
|
159
169
|
## 2.10.0 (2018-03-28)
|
160
170
|
|
@@ -162,37 +172,37 @@
|
|
162
172
|
|
163
173
|
* Keep download endpoint URL the same regardless of metadata ordering (@MSchmidt)
|
164
174
|
|
165
|
-
* Remove `:rack_mime` extension inferrer from the `infer_extension` plugin (@janko
|
175
|
+
* Remove `:rack_mime` extension inferrer from the `infer_extension` plugin (@janko)
|
166
176
|
|
167
|
-
* Allow `UploadedFile#download` to accept a block for temporary file download (@janko
|
177
|
+
* Allow `UploadedFile#download` to accept a block for temporary file download (@janko)
|
168
178
|
|
169
|
-
* Add `:ruby_vips` analyzer to `store_dimensions` plugin (@janko
|
179
|
+
* Add `:ruby_vips` analyzer to `store_dimensions` plugin (@janko)
|
170
180
|
|
171
|
-
* Add `:mini_magick` analyzer to `store_dimensions` plugin (@janko
|
181
|
+
* Add `:mini_magick` analyzer to `store_dimensions` plugin (@janko)
|
172
182
|
|
173
|
-
* Soft-rename `:heroku` logging format to `:logfmt` (@janko
|
183
|
+
* Soft-rename `:heroku` logging format to `:logfmt` (@janko)
|
174
184
|
|
175
|
-
* Deprecate `Shrine::IO_METHODS` constant (@janko
|
185
|
+
* Deprecate `Shrine::IO_METHODS` constant (@janko)
|
176
186
|
|
177
|
-
* Don't require IO size to be known on upload (@janko
|
187
|
+
* Don't require IO size to be known on upload (@janko)
|
178
188
|
|
179
189
|
* Inherit the logger on subclassing `Shrine` and make it shared across subclasses (@hmistry)
|
180
190
|
|
181
191
|
## 2.9.0 (2018-01-27)
|
182
192
|
|
183
|
-
* Support arrays of files in `versions` plugin (@janko
|
193
|
+
* Support arrays of files in `versions` plugin (@janko)
|
184
194
|
|
185
|
-
* Added `:marcel` analyzer to `determine_mime_type` plugin (@janko
|
195
|
+
* Added `:marcel` analyzer to `determine_mime_type` plugin (@janko)
|
186
196
|
|
187
|
-
* Deprecate `:filename` option of the `data_uri` plugin in favour of the new `infer_extension` plugin (@janko
|
197
|
+
* Deprecate `:filename` option of the `data_uri` plugin in favour of the new `infer_extension` plugin (@janko)
|
188
198
|
|
189
|
-
* Add `infer_extension` plugin for automatically deducing upload location extension from MIME type (@janko
|
199
|
+
* Add `infer_extension` plugin for automatically deducing upload location extension from MIME type (@janko)
|
190
200
|
|
191
|
-
* Apply default storage options passed via `Attachment.new` in `backgrounding` plugin (@janko
|
201
|
+
* Apply default storage options passed via `Attachment.new` in `backgrounding` plugin (@janko)
|
192
202
|
|
193
203
|
* Fix S3 storage replacing spaces in filename with "+" symbols (@ndbroadbent)
|
194
204
|
|
195
|
-
* Deprecate the `multi_delete` plugin (@janko
|
205
|
+
* Deprecate the `multi_delete` plugin (@janko)
|
196
206
|
|
197
207
|
* Allow calling `UploadedFile#open` without passing a block (@hmistry)
|
198
208
|
|
@@ -200,662 +210,662 @@
|
|
200
210
|
|
201
211
|
* Freeze all string literals (@hmistry)
|
202
212
|
|
203
|
-
* Allow passing options to `Model#<attachment>_attacher` for overriding `Attacher` options (@janko
|
213
|
+
* Allow passing options to `Model#<attachment>_attacher` for overriding `Attacher` options (@janko)
|
204
214
|
|
205
215
|
## 2.8.0 (2017-10-11)
|
206
216
|
|
207
|
-
* Expand relative directory paths when initializing `Storage::FileSystem` (@janko
|
217
|
+
* Expand relative directory paths when initializing `Storage::FileSystem` (@janko)
|
208
218
|
|
209
|
-
* Fix `logging` plugin erroring on `:json` format when ActiveSupport is loaded (@janko
|
219
|
+
* Fix `logging` plugin erroring on `:json` format when ActiveSupport is loaded (@janko)
|
210
220
|
|
211
|
-
* Allow `Storage::S3#clear!` to take a block for specifying which objects to delete (@janko
|
221
|
+
* Allow `Storage::S3#clear!` to take a block for specifying which objects to delete (@janko)
|
212
222
|
|
213
|
-
* Make `:filemagic` analyzer close the FileMagic descriptor even in case of exceptions (@janko
|
223
|
+
* Make `:filemagic` analyzer close the FileMagic descriptor even in case of exceptions (@janko)
|
214
224
|
|
215
|
-
* Make `:file` analyzer work for potential file types which have magic bytes farther than 256 KB (@janko
|
225
|
+
* Make `:file` analyzer work for potential file types which have magic bytes farther than 256 KB (@janko)
|
216
226
|
|
217
|
-
* Deprecate `aws-sdk` 2.x in favour of the new `aws-sdk-s3` gem (@janko
|
227
|
+
* Deprecate `aws-sdk` 2.x in favour of the new `aws-sdk-s3` gem (@janko)
|
218
228
|
|
219
|
-
* Modify `UploadedFile#extension` to always return the extension in lowercase format (@janko
|
229
|
+
* Modify `UploadedFile#extension` to always return the extension in lowercase format (@janko)
|
220
230
|
|
221
|
-
* Downcase the original file extension when generating an upload location (@janko
|
231
|
+
* Downcase the original file extension when generating an upload location (@janko)
|
222
232
|
|
223
|
-
* Allow specifying the full record attribute name in `metadata_attributes` plugin (@janko
|
233
|
+
* Allow specifying the full record attribute name in `metadata_attributes` plugin (@janko)
|
224
234
|
|
225
|
-
* Allow specifying metadata mappings on `metadata_attributes` plugin initialization (@janko
|
235
|
+
* Allow specifying metadata mappings on `metadata_attributes` plugin initialization (@janko)
|
226
236
|
|
227
|
-
* Add support for ranged requests in `download_endpoint` and `rack_response` plugins (@janko
|
237
|
+
* Add support for ranged requests in `download_endpoint` and `rack_response` plugins (@janko)
|
228
238
|
|
229
|
-
* Allow `Storage::S3#open` and `Storage::S3#download` to accept additional options (@janko
|
239
|
+
* Allow `Storage::S3#open` and `Storage::S3#download` to accept additional options (@janko)
|
230
240
|
|
231
|
-
* Forward any options given to `UploadedFile#open` or `UploadedFile#download` to the storage (@janko
|
241
|
+
* Forward any options given to `UploadedFile#open` or `UploadedFile#download` to the storage (@janko)
|
232
242
|
|
233
|
-
* Update `direct_upload` plugin to support Roda 3 (@janko
|
243
|
+
* Update `direct_upload` plugin to support Roda 3 (@janko)
|
234
244
|
|
235
245
|
## 2.7.0 (2017-09-11)
|
236
246
|
|
237
|
-
* Deprecate the `Shrine::DownloadEndpoint` constant over `Shrine.download_endpoint` (@janko
|
247
|
+
* Deprecate the `Shrine::DownloadEndpoint` constant over `Shrine.download_endpoint` (@janko)
|
238
248
|
|
239
|
-
* Allow an additional `#headers` attribute on presigns and return it in `presign_endpoint` (@janko
|
249
|
+
* Allow an additional `#headers` attribute on presigns and return it in `presign_endpoint` (@janko)
|
240
250
|
|
241
|
-
* Allow overriding `upload_endpoint` and `presign_endpoint` options per-endpoint (@janko
|
251
|
+
* Allow overriding `upload_endpoint` and `presign_endpoint` options per-endpoint (@janko)
|
242
252
|
|
243
|
-
* Add `:presign` and `:rack_response` options to `presign_endpoint` (@janko
|
253
|
+
* Add `:presign` and `:rack_response` options to `presign_endpoint` (@janko)
|
244
254
|
|
245
|
-
* Add `:upload`, `:upload_context` and `:rack_response` options to `upload_endpoint` (@janko
|
255
|
+
* Add `:upload`, `:upload_context` and `:rack_response` options to `upload_endpoint` (@janko)
|
246
256
|
|
247
|
-
* Modify `upload_endpoint` and `presign_endpoint` to return `text/plain` error responses (@janko
|
257
|
+
* Modify `upload_endpoint` and `presign_endpoint` to return `text/plain` error responses (@janko)
|
248
258
|
|
249
|
-
* Add `:request` upload context parameter in `upload_endpoint` (@janko
|
259
|
+
* Add `:request` upload context parameter in `upload_endpoint` (@janko)
|
250
260
|
|
251
|
-
* Change `:action` upload context parameter to `:upload` in `upload_endpoint` (@janko
|
261
|
+
* Change `:action` upload context parameter to `:upload` in `upload_endpoint` (@janko)
|
252
262
|
|
253
|
-
* Return `405 Method Not Allowed` on invalid HTTP verb in `upload_endpoint` and `presign_endpoint` (@janko
|
263
|
+
* Return `405 Method Not Allowed` on invalid HTTP verb in `upload_endpoint` and `presign_endpoint` (@janko)
|
254
264
|
|
255
|
-
* Modify `upload_endpoint` and `presign_endpoint` to handle requests on the root URL (@janko
|
265
|
+
* Modify `upload_endpoint` and `presign_endpoint` to handle requests on the root URL (@janko)
|
256
266
|
|
257
|
-
* Allow creating Rack apps dynamically in `upload_endpoint` and `presign_endpoint` (@janko
|
267
|
+
* Allow creating Rack apps dynamically in `upload_endpoint` and `presign_endpoint` (@janko)
|
258
268
|
|
259
|
-
* Remove Roda dependency from `upload_endpoint` and `presign_endpoint` plugins (@janko
|
269
|
+
* Remove Roda dependency from `upload_endpoint` and `presign_endpoint` plugins (@janko)
|
260
270
|
|
261
|
-
* Split `direct_upload` plugin into `upload_endpoint` and `presign_endpoint` plugins (@janko
|
271
|
+
* Split `direct_upload` plugin into `upload_endpoint` and `presign_endpoint` plugins (@janko)
|
262
272
|
|
263
273
|
* Support the new `aws-sdk-s3` gem in `Shrine::Storage::S3` (@lizdeika)
|
264
274
|
|
265
|
-
* Return `Cache-Control` header in `download_endpoint` to permanently cache responses (@janko
|
275
|
+
* Return `Cache-Control` header in `download_endpoint` to permanently cache responses (@janko)
|
266
276
|
|
267
|
-
* Return `404 Not Found` when uploaded file doesn't exist in `download_endpoint` (@janko
|
277
|
+
* Return `404 Not Found` when uploaded file doesn't exist in `download_endpoint` (@janko)
|
268
278
|
|
269
|
-
* Utilize uploaded file metadata when generating response in `download_endpoint` (@janko
|
279
|
+
* Utilize uploaded file metadata when generating response in `download_endpoint` (@janko)
|
270
280
|
|
271
|
-
* Fix deprecation warning when generating fake presign with query parameters (@janko
|
281
|
+
* Fix deprecation warning when generating fake presign with query parameters (@janko)
|
272
282
|
|
273
283
|
* Don't raise error in `file` and `filemagic` MIME type analyzer on empty IO (@ypresto)
|
274
284
|
|
275
|
-
* Require `down` in `remote_url` plugin even when a custom downloader is given (@janko
|
285
|
+
* Require `down` in `remote_url` plugin even when a custom downloader is given (@janko)
|
276
286
|
|
277
|
-
* Require `time` library in `logging` plugin to fix `undefined method #iso8601 for Time` (@janko
|
287
|
+
* Require `time` library in `logging` plugin to fix `undefined method #iso8601 for Time` (@janko)
|
278
288
|
|
279
289
|
* Allow validations defined on a superclass to be reused in a subclass (@printercu)
|
280
290
|
|
281
|
-
* Allow validation error messages to be an array of arguments for ActiveRecord (@janko
|
291
|
+
* Allow validation error messages to be an array of arguments for ActiveRecord (@janko)
|
282
292
|
|
283
|
-
* Allow model subclasses to override the attachment with a different uploader (@janko
|
293
|
+
* Allow model subclasses to override the attachment with a different uploader (@janko)
|
284
294
|
|
285
295
|
* Accept `Attacher.new` options like `store:` and `cache:` via `Attachment.new` (@ypresto)
|
286
296
|
|
287
|
-
* Raise `ArgumentError` when `:bucket` option is nil in `Shrine::Storage::S3#initialize` (@janko
|
297
|
+
* Raise `ArgumentError` when `:bucket` option is nil in `Shrine::Storage::S3#initialize` (@janko)
|
288
298
|
|
289
|
-
* Don't wrap base64-encoded content into 60 columns in `UploadedFile#base64` and `#data_uri` (@janko
|
299
|
+
* Don't wrap base64-encoded content into 60 columns in `UploadedFile#base64` and `#data_uri` (@janko)
|
290
300
|
|
291
|
-
* Add `:mini_mime` option to `determine_mime_type` plugin for using the [mini_mime](https://github.com/discourse/mini_mime) gem (@janko
|
301
|
+
* Add `:mini_mime` option to `determine_mime_type` plugin for using the [mini_mime](https://github.com/discourse/mini_mime) gem (@janko)
|
292
302
|
|
293
|
-
* Fix `data_uri` plugin raising an exception on Ruby 2.4.1 when using raw data URIs (@janko
|
303
|
+
* Fix `data_uri` plugin raising an exception on Ruby 2.4.1 when using raw data URIs (@janko)
|
294
304
|
|
295
|
-
* Implement `Shrine::Storage::S3#open` using the aws-sdk gem instead of `Down.open` (@janko
|
305
|
+
* Implement `Shrine::Storage::S3#open` using the aws-sdk gem instead of `Down.open` (@janko)
|
296
306
|
|
297
|
-
* Un-deprecate `Shrine.uploaded_file` accepting file data as JSON string (@janko
|
307
|
+
* Un-deprecate `Shrine.uploaded_file` accepting file data as JSON string (@janko)
|
298
308
|
|
299
|
-
* Don't wrap base64-formatted signatures to 60 columns (@janko
|
309
|
+
* Don't wrap base64-formatted signatures to 60 columns (@janko)
|
300
310
|
|
301
|
-
* Don't add a newline at the end of the base64-formatted signature (@janko
|
311
|
+
* Don't add a newline at the end of the base64-formatted signature (@janko)
|
302
312
|
|
303
313
|
## 2.6.1 (2017-04-12)
|
304
314
|
|
305
|
-
* Fix `download_endpoint` returning incorrect reponse body in some cases (@janko
|
315
|
+
* Fix `download_endpoint` returning incorrect reponse body in some cases (@janko)
|
306
316
|
|
307
317
|
## 2.6.0 (2017-04-04)
|
308
318
|
|
309
|
-
* Make `Shrine::Storage::FileSystem#path` public which returns path to the file as a `Pathname` object (@janko
|
319
|
+
* Make `Shrine::Storage::FileSystem#path` public which returns path to the file as a `Pathname` object (@janko)
|
310
320
|
|
311
|
-
* Add `Shrine.rack_file` to `rack_file` plugin for converting Rack uploaded file hash into an IO (@janko
|
321
|
+
* Add `Shrine.rack_file` to `rack_file` plugin for converting Rack uploaded file hash into an IO (@janko)
|
312
322
|
|
313
|
-
* Deprecate passing a Rack file hash to `Shrine#upload` (@janko
|
323
|
+
* Deprecate passing a Rack file hash to `Shrine#upload` (@janko)
|
314
324
|
|
315
|
-
* Expose `Shrine.extract_dimensions` and `Shrine.dimensions_analyzers` in `store_dimensions` plugin (@janko
|
325
|
+
* Expose `Shrine.extract_dimensions` and `Shrine.dimensions_analyzers` in `store_dimensions` plugin (@janko)
|
316
326
|
|
317
|
-
* Add `metadata_attributes` plugin for syncing attachment metadata with additional record attributes (@janko
|
327
|
+
* Add `metadata_attributes` plugin for syncing attachment metadata with additional record attributes (@janko)
|
318
328
|
|
319
|
-
* Remove the undocumented `:magic_header` option from `determine_mime_type` plugin (@janko
|
329
|
+
* Remove the undocumented `:magic_header` option from `determine_mime_type` plugin (@janko)
|
320
330
|
|
321
|
-
* Expose `Shrine.determine_mime_type` and `Shrine.mime_type_analyzers` in `determine_mime_type` plugin (@janko
|
331
|
+
* Expose `Shrine.determine_mime_type` and `Shrine.mime_type_analyzers` in `determine_mime_type` plugin (@janko)
|
322
332
|
|
323
|
-
* Add `signature` plugin for calculating a SHA{1,256,384,512}/MD5/CRC32 hash of a file (@janko
|
333
|
+
* Add `signature` plugin for calculating a SHA{1,256,384,512}/MD5/CRC32 hash of a file (@janko)
|
324
334
|
|
325
|
-
* Return the resolved plugin module when calling `Shrine.plugin` (@janko
|
335
|
+
* Return the resolved plugin module when calling `Shrine.plugin` (@janko)
|
326
336
|
|
327
|
-
* Accept hash of metadata with symbol keys as well in `add_metadata` block (@janko
|
337
|
+
* Accept hash of metadata with symbol keys as well in `add_metadata` block (@janko)
|
328
338
|
|
329
|
-
* Add `refresh_metadata` plugin for re-extracting metadata from an uploaded file (@janko
|
339
|
+
* Add `refresh_metadata` plugin for re-extracting metadata from an uploaded file (@janko)
|
330
340
|
|
331
|
-
* Allow S3 storage to use parallelized multipart upload for files from FileSystem storage as well (@janko
|
341
|
+
* Allow S3 storage to use parallelized multipart upload for files from FileSystem storage as well (@janko)
|
332
342
|
|
333
|
-
* Improve default multipart copy threshold for S3 storage (@janko
|
343
|
+
* Improve default multipart copy threshold for S3 storage (@janko)
|
334
344
|
|
335
|
-
* Allow specifying multipart upload and copy thresholds separately in `Shrine::Storage::S3` (@janko
|
345
|
+
* Allow specifying multipart upload and copy thresholds separately in `Shrine::Storage::S3` (@janko)
|
336
346
|
|
337
|
-
* Fix `Storage::FileSystem#clear!` not deleting old files if there are newer files in the same directory (@janko
|
347
|
+
* Fix `Storage::FileSystem#clear!` not deleting old files if there are newer files in the same directory (@janko)
|
338
348
|
|
339
|
-
* Allow media type in the data URI to have additional parameters (@janko
|
349
|
+
* Allow media type in the data URI to have additional parameters (@janko)
|
340
350
|
|
341
|
-
* URI-decode non-base64 data URIs, as such data URIs are URI-encoded according to the specification (@janko
|
351
|
+
* URI-decode non-base64 data URIs, as such data URIs are URI-encoded according to the specification (@janko)
|
342
352
|
|
343
|
-
* Improve performance of parsing data URIs by 10x switching from a regex to StringScanner (@janko
|
353
|
+
* Improve performance of parsing data URIs by 10x switching from a regex to StringScanner (@janko)
|
344
354
|
|
345
|
-
* Reduce memory usage of `Shrine.data_uri` and `UploadedFile#base64` by at least 2x (@janko
|
355
|
+
* Reduce memory usage of `Shrine.data_uri` and `UploadedFile#base64` by at least 2x (@janko)
|
346
356
|
|
347
|
-
* Add `Shrine.data_uri` to `data_uri` plugin which parses and converts the given data URI to an IO object (@janko
|
357
|
+
* Add `Shrine.data_uri` to `data_uri` plugin which parses and converts the given data URI to an IO object (@janko)
|
348
358
|
|
349
|
-
* Make `rack_file` plugin work with HashWithIndifferentAccess-like objects such as Hashie::Mash (@janko
|
359
|
+
* Make `rack_file` plugin work with HashWithIndifferentAccess-like objects such as Hashie::Mash (@janko)
|
350
360
|
|
351
|
-
* Expose `Aws::S3::Client` via `Shrine::Storage::S3#client`, and deprecate `Shrine::Strorage::S3#s3` (@janko
|
361
|
+
* Expose `Aws::S3::Client` via `Shrine::Storage::S3#client`, and deprecate `Shrine::Strorage::S3#s3` (@janko)
|
352
362
|
|
353
|
-
* Modify `delete_raw` plugin to delete any IOs that respond to `#path` (@janko
|
363
|
+
* Modify `delete_raw` plugin to delete any IOs that respond to `#path` (@janko)
|
354
364
|
|
355
|
-
* Require the Tempfile standard library in lib/shrine.rb (@janko
|
365
|
+
* Require the Tempfile standard library in lib/shrine.rb (@janko)
|
356
366
|
|
357
|
-
* Deprecate dimensions validations passing when a dimension is nil (@janko
|
367
|
+
* Deprecate dimensions validations passing when a dimension is nil (@janko)
|
358
368
|
|
359
|
-
* Deprecate passing regexes to type/extension whitelists/blacklists in `validation_helpers` (@janko
|
369
|
+
* Deprecate passing regexes to type/extension whitelists/blacklists in `validation_helpers` (@janko)
|
360
370
|
|
361
|
-
* Don't include list of blacklisted types and extensions in default `validation_helpers` messages (@janko
|
371
|
+
* Don't include list of blacklisted types and extensions in default `validation_helpers` messages (@janko)
|
362
372
|
|
363
|
-
* Improve default error messages in `validation_helpers` plugin (@janko
|
373
|
+
* Improve default error messages in `validation_helpers` plugin (@janko)
|
364
374
|
|
365
|
-
* Don't require the `benchmark` standard library in `logging` plugin (@janko
|
375
|
+
* Don't require the `benchmark` standard library in `logging` plugin (@janko)
|
366
376
|
|
367
|
-
* Don't dirty the attacher in `Attacher#set` when attachment hasn't changed (@janko
|
377
|
+
* Don't dirty the attacher in `Attacher#set` when attachment hasn't changed (@janko)
|
368
378
|
|
369
|
-
* Rename `Attacher#attached?` to a more accurate `Attacher#changed?` (@janko
|
379
|
+
* Rename `Attacher#attached?` to a more accurate `Attacher#changed?` (@janko)
|
370
380
|
|
371
|
-
* Allow calling `Attacher#finalize` if attachment hasn't changed, instead of raising an error (@janko
|
381
|
+
* Allow calling `Attacher#finalize` if attachment hasn't changed, instead of raising an error (@janko)
|
372
382
|
|
373
|
-
* Make `Shrine::Storage::S3#object` method public (@janko
|
383
|
+
* Make `Shrine::Storage::S3#object` method public (@janko)
|
374
384
|
|
375
|
-
* Prevent autoloading race conditions in aws-sdk gem by eager loading the S3 service (@janko
|
385
|
+
* Prevent autoloading race conditions in aws-sdk gem by eager loading the S3 service (@janko)
|
376
386
|
|
377
|
-
* Raise `Shrine::Error` when `Shrine#generate_location` returns nil (@janko
|
387
|
+
* Raise `Shrine::Error` when `Shrine#generate_location` returns nil (@janko)
|
378
388
|
|
379
389
|
## 2.5.0 (2016-11-11)
|
380
390
|
|
381
|
-
* Add `Attacher.default_url` as the idiomatic way of declaring default URLs (@janko
|
391
|
+
* Add `Attacher.default_url` as the idiomatic way of declaring default URLs (@janko)
|
382
392
|
|
383
|
-
* Allow uploaders themselves to accept Rack uploaded files when `rack_file` is loaded (@janko
|
393
|
+
* Allow uploaders themselves to accept Rack uploaded files when `rack_file` is loaded (@janko)
|
384
394
|
|
385
|
-
* Raise a descriptive error when two versions are pointing to the same IO object (@janko
|
395
|
+
* Raise a descriptive error when two versions are pointing to the same IO object (@janko)
|
386
396
|
|
387
|
-
* Make `backgrounding` plugin work with plain model instances (@janko
|
397
|
+
* Make `backgrounding` plugin work with plain model instances (@janko)
|
388
398
|
|
389
|
-
* Make validation methods in `validation_helpers` plugin return whether validation succeeded (@janko
|
399
|
+
* Make validation methods in `validation_helpers` plugin return whether validation succeeded (@janko)
|
390
400
|
|
391
401
|
* Make extension matching case insensitive in `validation_helpers` plugin (@jonasheinrich)
|
392
402
|
|
393
|
-
* Make `remove_invalid` plugin remove dirty state on attacher after removing invalid file (@janko
|
403
|
+
* Make `remove_invalid` plugin remove dirty state on attacher after removing invalid file (@janko)
|
394
404
|
|
395
|
-
* Raise error if `Shrine::UploadedFile` isn't initialized with valid data (@janko
|
405
|
+
* Raise error if `Shrine::UploadedFile` isn't initialized with valid data (@janko)
|
396
406
|
|
397
407
|
* Accept `extension` parameter without the dot in presign endpoint of `direct_upload` plugin (@jonasheinrich)
|
398
408
|
|
399
|
-
* Add `:fallback_to_original` option to `versions` plugin for disabling fallback to original file (@janko
|
409
|
+
* Add `:fallback_to_original` option to `versions` plugin for disabling fallback to original file (@janko)
|
400
410
|
|
401
|
-
* Add `#dimensions` method to `UploadedFile` when loading `store_dimensions` plugin (@janko
|
411
|
+
* Add `#dimensions` method to `UploadedFile` when loading `store_dimensions` plugin (@janko)
|
402
412
|
|
403
|
-
* Make it possible to extract multiple metadata values at once with the `add_metadata` plugin (@janko
|
413
|
+
* Make it possible to extract multiple metadata values at once with the `add_metadata` plugin (@janko)
|
404
414
|
|
405
415
|
## 2.4.1 (2016-10-17)
|
406
416
|
|
407
|
-
* Move back JSON serialization from `Attacher#write` to `Attacher#_set` (@janko
|
417
|
+
* Move back JSON serialization from `Attacher#write` to `Attacher#_set` (@janko)
|
408
418
|
|
409
|
-
* Make `remove_invalid` plugin assign back a previous attachment if was there (@janko
|
419
|
+
* Make `remove_invalid` plugin assign back a previous attachment if was there (@janko)
|
410
420
|
|
411
|
-
* Deprecate `Storage::FileSystem#download` (@janko
|
421
|
+
* Deprecate `Storage::FileSystem#download` (@janko)
|
412
422
|
|
413
|
-
* In `UploadedFile#download` use extension from `#original_filename` if `#id` doesn't have it (@janko
|
423
|
+
* In `UploadedFile#download` use extension from `#original_filename` if `#id` doesn't have it (@janko)
|
414
424
|
|
415
425
|
## 2.4.0 (2016-10-11)
|
416
426
|
|
417
|
-
* Add `#convert_before_write` and `#convert_after_read` on the Attacher for data attribute conversion (@janko
|
427
|
+
* Add `#convert_before_write` and `#convert_after_read` on the Attacher for data attribute conversion (@janko)
|
418
428
|
|
419
|
-
* Extract the `<attachment>_data` attribute name into `Attacher#data_attribute` (@janko
|
429
|
+
* Extract the `<attachment>_data` attribute name into `Attacher#data_attribute` (@janko)
|
420
430
|
|
421
|
-
* Support JSON and JSONB PostgreSQL columns with ActiveRecord (@janko
|
431
|
+
* Support JSON and JSONB PostgreSQL columns with ActiveRecord (@janko)
|
422
432
|
|
423
|
-
* Fix S3 storage not handling filenames with double quotes in Content-Disposition header (@janko
|
433
|
+
* Fix S3 storage not handling filenames with double quotes in Content-Disposition header (@janko)
|
424
434
|
|
425
|
-
* Work around aws-sdk failing with non-ASCII characters in Content-Disposition header (@janko
|
435
|
+
* Work around aws-sdk failing with non-ASCII characters in Content-Disposition header (@janko)
|
426
436
|
|
427
|
-
* Allow dynamically generating URL options in `default_url_options` plugin (@janko
|
437
|
+
* Allow dynamically generating URL options in `default_url_options` plugin (@janko)
|
428
438
|
|
429
|
-
* Don't run file validations when duplicating the record in `copy` plugin (@janko
|
439
|
+
* Don't run file validations when duplicating the record in `copy` plugin (@janko)
|
430
440
|
|
431
|
-
* Don't use `Storage#stream` in download_endpoint plugin anymore, rely on `Storage#open` (@janko
|
441
|
+
* Don't use `Storage#stream` in download_endpoint plugin anymore, rely on `Storage#open` (@janko)
|
432
442
|
|
433
|
-
* Remove explicitly unlinking Tempfiles returned by `Storage#open` (@janko
|
443
|
+
* Remove explicitly unlinking Tempfiles returned by `Storage#open` (@janko)
|
434
444
|
|
435
|
-
* Move `:host` from first-class storage option to `#url` option on FileSystem and S3 storage (@janko
|
445
|
+
* Move `:host` from first-class storage option to `#url` option on FileSystem and S3 storage (@janko)
|
436
446
|
|
437
|
-
* Don't fail in FileSystem storage when attempting to delete a file that doesn't exist (@janko
|
447
|
+
* Don't fail in FileSystem storage when attempting to delete a file that doesn't exist (@janko)
|
438
448
|
|
439
|
-
* In `UploadedFile#open` handle the case when `Storage#open` raises an error (@janko
|
449
|
+
* In `UploadedFile#open` handle the case when `Storage#open` raises an error (@janko)
|
440
450
|
|
441
|
-
* Make the `sequel` plugin use less memory during transactions (@janko
|
451
|
+
* Make the `sequel` plugin use less memory during transactions (@janko)
|
442
452
|
|
443
|
-
* Use Roda's streaming plugin in `download_endpoint` for better EventMachine integration (@janko
|
453
|
+
* Use Roda's streaming plugin in `download_endpoint` for better EventMachine integration (@janko)
|
444
454
|
|
445
|
-
* Deprecate accepting a JSON string in `Shrine.uploaded_file` (@janko
|
455
|
+
* Deprecate accepting a JSON string in `Shrine.uploaded_file` (@janko)
|
446
456
|
|
447
|
-
* In S3 storage automatically write original filename to `Content-Disposition` header (@janko
|
457
|
+
* In S3 storage automatically write original filename to `Content-Disposition` header (@janko)
|
448
458
|
|
449
|
-
* Override `#to_s` in `Shrine::Attachment` for better introspection with `puts` (@janko
|
459
|
+
* Override `#to_s` in `Shrine::Attachment` for better introspection with `puts` (@janko)
|
450
460
|
|
451
461
|
## 2.3.1 (2016-09-01)
|
452
462
|
|
453
|
-
* Don't change permissions of existing directories in FileSystem storage (@janko
|
463
|
+
* Don't change permissions of existing directories in FileSystem storage (@janko)
|
454
464
|
|
455
465
|
## 2.3.0 (2016-08-27)
|
456
466
|
|
457
|
-
* Prevent client from caching the presign response in direct_upload plugin (@janko
|
467
|
+
* Prevent client from caching the presign response in direct_upload plugin (@janko)
|
458
468
|
|
459
|
-
* Make Sequel update only the attachment in background job (@janko
|
469
|
+
* Make Sequel update only the attachment in background job (@janko)
|
460
470
|
|
461
|
-
* Add copy plugin for copying files from one record to another (@janko
|
471
|
+
* Add copy plugin for copying files from one record to another (@janko)
|
462
472
|
|
463
|
-
* Disable moving when uploading stored file to backup storage (@janko
|
473
|
+
* Disable moving when uploading stored file to backup storage (@janko)
|
464
474
|
|
465
|
-
* Make `Attacher#recache` from the recache plugin public for standalone usage (@janko
|
475
|
+
* Make `Attacher#recache` from the recache plugin public for standalone usage (@janko)
|
466
476
|
|
467
|
-
* Allow changing `Shrine::Attacher#context` once the attacher is instantiated (@janko
|
477
|
+
* Allow changing `Shrine::Attacher#context` once the attacher is instantiated (@janko)
|
468
478
|
|
469
|
-
* Make `Attacher#read` for reading the attachment column public (@janko
|
479
|
+
* Make `Attacher#read` for reading the attachment column public (@janko)
|
470
480
|
|
471
|
-
* Don't rely on the `#id` writer on a model instance in backgrounding plugin (@janko
|
481
|
+
* Don't rely on the `#id` writer on a model instance in backgrounding plugin (@janko)
|
472
482
|
|
473
|
-
* Don't make `Attacher#swap` private in sequel and activerecord plugins (@janko
|
483
|
+
* Don't make `Attacher#swap` private in sequel and activerecord plugins (@janko)
|
474
484
|
|
475
|
-
* Set default UNIX permissions to 0644 for files and 0755 for directories (@janko
|
485
|
+
* Set default UNIX permissions to 0644 for files and 0755 for directories (@janko)
|
476
486
|
|
477
|
-
* Apply directory permissions to all subfolders inside the main folder (@janko
|
487
|
+
* Apply directory permissions to all subfolders inside the main folder (@janko)
|
478
488
|
|
479
|
-
* Add `:directory_permissions` to `Storage::FileSystem` (@janko
|
489
|
+
* Add `:directory_permissions` to `Storage::FileSystem` (@janko)
|
480
490
|
|
481
491
|
## 2.2.0 (2016-07-29)
|
482
492
|
|
483
|
-
* Soft deprecate `:phase` over `:action` in `context` (@janko
|
493
|
+
* Soft deprecate `:phase` over `:action` in `context` (@janko)
|
484
494
|
|
485
|
-
* Add ability to sequel and activerecord plugins to disable callbacks and validations (@janko
|
495
|
+
* Add ability to sequel and activerecord plugins to disable callbacks and validations (@janko)
|
486
496
|
|
487
|
-
* The direct_upload endpoint now always includes both upload and presign routes (@janko
|
497
|
+
* The direct_upload endpoint now always includes both upload and presign routes (@janko)
|
488
498
|
|
489
|
-
* Don't let the combination for delete_raw and moving plugins trigger any errors (@janko
|
499
|
+
* Don't let the combination for delete_raw and moving plugins trigger any errors (@janko)
|
490
500
|
|
491
|
-
* Add `UploadedFile#open` that mimics `File.open` with a block (@janko
|
501
|
+
* Add `UploadedFile#open` that mimics `File.open` with a block (@janko)
|
492
502
|
|
493
|
-
* In the storage linter don't require `#clear!` to be implemented (@janko
|
503
|
+
* In the storage linter don't require `#clear!` to be implemented (@janko)
|
494
504
|
|
495
|
-
* In backgrounding plugin don't require model to have attachment module included (@janko
|
505
|
+
* In backgrounding plugin don't require model to have attachment module included (@janko)
|
496
506
|
|
497
|
-
* Add add_metadata plugin for defining additional metadata values to be extracted (@janko
|
507
|
+
* Add add_metadata plugin for defining additional metadata values to be extracted (@janko)
|
498
508
|
|
499
|
-
* In determine_mime_type plugin raise error when file command wasn't found or errored (@janko
|
509
|
+
* In determine_mime_type plugin raise error when file command wasn't found or errored (@janko)
|
500
510
|
|
501
|
-
* Add processing plugin for simpler and more declarative definition of processing (@janko
|
511
|
+
* Add processing plugin for simpler and more declarative definition of processing (@janko)
|
502
512
|
|
503
|
-
* Storage classes don't need to implement the `#read` method anymore (@janko
|
513
|
+
* Storage classes don't need to implement the `#read` method anymore (@janko)
|
504
514
|
|
505
|
-
* Use aws-sdk in `S3#download`, which will automatically retry failed downloads (@janko
|
515
|
+
* Use aws-sdk in `S3#download`, which will automatically retry failed downloads (@janko)
|
506
516
|
|
507
|
-
* Add `:multipart_threshold` for when S3 storage should use parallelized multipart copy/upload (@janko
|
517
|
+
* Add `:multipart_threshold` for when S3 storage should use parallelized multipart copy/upload (@janko)
|
508
518
|
|
509
|
-
* Automatically use optimized multipart S3 upload for files larger than 15MB (@janko
|
519
|
+
* Automatically use optimized multipart S3 upload for files larger than 15MB (@janko)
|
510
520
|
|
511
|
-
* Avoid an additional HEAD request to determine content length in multipart S3 copy (@janko
|
521
|
+
* Avoid an additional HEAD request to determine content length in multipart S3 copy (@janko)
|
512
522
|
|
513
523
|
## 2.1.1 (2016-07-14)
|
514
524
|
|
515
|
-
* Fix `S3#open` throwing a NameError if `net/http` isn't required (@janko
|
525
|
+
* Fix `S3#open` throwing a NameError if `net/http` isn't required (@janko)
|
516
526
|
|
517
527
|
## 2.1.0 (2016-06-27)
|
518
528
|
|
519
|
-
* Remove `:names` from versions plugin, and deprecate generating versions in :cache phase (@janko
|
529
|
+
* Remove `:names` from versions plugin, and deprecate generating versions in :cache phase (@janko)
|
520
530
|
|
521
|
-
* Pass a `Shrine::UploadedFile` in restore_cached_data instead of the raw IO (@janko
|
531
|
+
* Pass a `Shrine::UploadedFile` in restore_cached_data instead of the raw IO (@janko)
|
522
532
|
|
523
|
-
* Increase magic header length in determine_mime_type and make it configurable (@janko
|
533
|
+
* Increase magic header length in determine_mime_type and make it configurable (@janko)
|
524
534
|
|
525
|
-
* Execute `file` command in determine_mime_type the same way for files as for general IOs (@janko
|
535
|
+
* Execute `file` command in determine_mime_type the same way for files as for general IOs (@janko)
|
526
536
|
|
527
|
-
* Make logging and parallelize plugins work properly when loaded in this order (@janko
|
537
|
+
* Make logging and parallelize plugins work properly when loaded in this order (@janko)
|
528
538
|
|
529
|
-
* Don't assert arity of IO methods, so that objects like `Rack::Test::UploadedFile` are allowed (@janko
|
539
|
+
* Don't assert arity of IO methods, so that objects like `Rack::Test::UploadedFile` are allowed (@janko)
|
530
540
|
|
531
|
-
* Deprecate `#cached_<attachment>_data=` over using `<attachment>` for the hidden field (@janko
|
541
|
+
* Deprecate `#cached_<attachment>_data=` over using `<attachment>` for the hidden field (@janko)
|
532
542
|
|
533
543
|
## 2.0.1 (2016-05-30)
|
534
544
|
|
535
|
-
* Don't override previously set default_url in versions plugin (@janko
|
545
|
+
* Don't override previously set default_url in versions plugin (@janko)
|
536
546
|
|
537
547
|
## 2.0.0 (2016-05-19)
|
538
548
|
|
539
|
-
* Include query parameters in CDN-ed S3 URLs, making them work for private objects (@janko
|
549
|
+
* Include query parameters in CDN-ed S3 URLs, making them work for private objects (@janko)
|
540
550
|
|
541
|
-
* Remove the `:include_error` option from remote_url plugin (@janko
|
551
|
+
* Remove the `:include_error` option from remote_url plugin (@janko)
|
542
552
|
|
543
|
-
* Make previous plugin options persist when reapplying the plugin (@janko
|
553
|
+
* Make previous plugin options persist when reapplying the plugin (@janko)
|
544
554
|
|
545
|
-
* Improve how upload options and metadata are passed to storage's `#upload` and `#move` (@janko
|
555
|
+
* Improve how upload options and metadata are passed to storage's `#upload` and `#move` (@janko)
|
546
556
|
|
547
|
-
* Remove `Shrine::Confirm` and confirming `Storage#clear!` in general (@janko
|
557
|
+
* Remove `Shrine::Confirm` and confirming `Storage#clear!` in general (@janko)
|
548
558
|
|
549
|
-
* Allow implementing a custom dimensions analyzer using built-in ones (@janko
|
559
|
+
* Allow implementing a custom dimensions analyzer using built-in ones (@janko)
|
550
560
|
|
551
|
-
* Don't error in determine_mime_type when MimeMagic cannot determine the MIME (@janko
|
561
|
+
* Don't error in determine_mime_type when MimeMagic cannot determine the MIME (@janko)
|
552
562
|
|
553
|
-
* Allow implementing a custom MIME type analyzer using built-in ones (@janko
|
563
|
+
* Allow implementing a custom MIME type analyzer using built-in ones (@janko)
|
554
564
|
|
555
|
-
* Don't check that the cached file exists in restore_cached_data plugin (@janko
|
565
|
+
* Don't check that the cached file exists in restore_cached_data plugin (@janko)
|
556
566
|
|
557
|
-
* Deprecate migration_helpers plugin and move `Attacher#cached?` and `Attacher#stored?` to base (@janko
|
567
|
+
* Deprecate migration_helpers plugin and move `Attacher#cached?` and `Attacher#stored?` to base (@janko)
|
558
568
|
|
559
|
-
* Don't trigger restore_cached_data plugin functionality when assigning the same cached attachment (@janko
|
569
|
+
* Don't trigger restore_cached_data plugin functionality when assigning the same cached attachment (@janko)
|
560
570
|
|
561
|
-
* Give `Attacher#_promote` and `Attacher#promote` the same method signature (@janko
|
571
|
+
* Give `Attacher#_promote` and `Attacher#promote` the same method signature (@janko)
|
562
572
|
|
563
|
-
* Add `Attacher#_delete` which now spawns a background job instead of `Attacher#delete!` (@janko
|
573
|
+
* Add `Attacher#_delete` which now spawns a background job instead of `Attacher#delete!` (@janko)
|
564
574
|
|
565
|
-
* Make `Attacher#cache!`, `Attacher#store!`, and `Attacher#delete!` public (@janko
|
575
|
+
* Make `Attacher#cache!`, `Attacher#store!`, and `Attacher#delete!` public (@janko)
|
566
576
|
|
567
|
-
* Don't cache storages in dynamic_storage plugin (@janko
|
577
|
+
* Don't cache storages in dynamic_storage plugin (@janko)
|
568
578
|
|
569
|
-
* Make only one HTTP request in download_endpoint plugin (@janko
|
579
|
+
* Make only one HTTP request in download_endpoint plugin (@janko)
|
570
580
|
|
571
|
-
* Print secuity warning when not using determine_mime_type plugin (@janko
|
581
|
+
* Print secuity warning when not using determine_mime_type plugin (@janko)
|
572
582
|
|
573
|
-
* Support Mongoid in backgrounding plugin (@janko
|
583
|
+
* Support Mongoid in backgrounding plugin (@janko)
|
574
584
|
|
575
|
-
* Allow including attachment module to non-`Sequel::Model` objects in sequel plugin (@janko
|
585
|
+
* Allow including attachment module to non-`Sequel::Model` objects in sequel plugin (@janko)
|
576
586
|
|
577
587
|
* Handle paths that start with "-" in determine_mime_type plugin when `:file` analyzer is used (@zaeleus)
|
578
588
|
|
579
|
-
* Allow including attachment module to non-`ActiveRecord::Base` objects in activerecord plugin (@janko
|
589
|
+
* Allow including attachment module to non-`ActiveRecord::Base` objects in activerecord plugin (@janko)
|
580
590
|
|
581
|
-
* Remove deprecated "restore_cached" alias for restore_cached_data plugin (@janko
|
591
|
+
* Remove deprecated "restore_cached" alias for restore_cached_data plugin (@janko)
|
582
592
|
|
583
|
-
* Remove deprecated "delete_uploaded" alias for delete_raw plugin (@janko
|
593
|
+
* Remove deprecated "delete_uploaded" alias for delete_raw plugin (@janko)
|
584
594
|
|
585
|
-
* Make the default generated unique location shorter (@janko
|
595
|
+
* Make the default generated unique location shorter (@janko)
|
586
596
|
|
587
|
-
* Make the `:delegate` option in migration_helpers default to `false` (@janko
|
597
|
+
* Make the `:delegate` option in migration_helpers default to `false` (@janko)
|
588
598
|
|
589
|
-
* Don't require `:storages` option anymore in moving plugin (@janko
|
599
|
+
* Don't require `:storages` option anymore in moving plugin (@janko)
|
590
600
|
|
591
|
-
* Don't delete uploaded IO if storage doesn't support moving in moving plugin (@janko
|
601
|
+
* Don't delete uploaded IO if storage doesn't support moving in moving plugin (@janko)
|
592
602
|
|
593
|
-
* Rename delete phases to be shorter and consistent in naming with upload phases (@janko
|
603
|
+
* Rename delete phases to be shorter and consistent in naming with upload phases (@janko)
|
594
604
|
|
595
|
-
* Remove deprecated `Shrine#default_url` (@janko
|
605
|
+
* Remove deprecated `Shrine#default_url` (@janko)
|
596
606
|
|
597
|
-
* Remove deprecated `:subdirectory` on FileSystem storage (@janko
|
607
|
+
* Remove deprecated `:subdirectory` on FileSystem storage (@janko)
|
598
608
|
|
599
|
-
* Don't return the uploaded file in `Attacher#set` and `Attacher#assign` (@janko
|
609
|
+
* Don't return the uploaded file in `Attacher#set` and `Attacher#assign` (@janko)
|
600
610
|
|
601
|
-
* Return the attacher instance in `Attacher.promote` and `Attacher.delete` in backgrounding plugin (@janko
|
611
|
+
* Return the attacher instance in `Attacher.promote` and `Attacher.delete` in backgrounding plugin (@janko)
|
602
612
|
|
603
|
-
* Rename "attachment" to "name", and "uploaded_file" to "attachment" in backgrounding plugin (@janko
|
613
|
+
* Rename "attachment" to "name", and "uploaded_file" to "attachment" in backgrounding plugin (@janko)
|
604
614
|
|
605
|
-
* Remove using `:presign` for presign options instead of `:presign_options` (@janko
|
615
|
+
* Remove using `:presign` for presign options instead of `:presign_options` (@janko)
|
606
616
|
|
607
|
-
* Remove deprecated `Shrine.direct_endpoint` from direct_upload plugin (@janko
|
617
|
+
* Remove deprecated `Shrine.direct_endpoint` from direct_upload plugin (@janko)
|
608
618
|
|
609
|
-
* Remove deprecated keep_location plugin (@janko
|
619
|
+
* Remove deprecated keep_location plugin (@janko)
|
610
620
|
|
611
|
-
* Make `Shrine#extract_dimensions` a private method in store_dimensions plugin (@janko
|
621
|
+
* Make `Shrine#extract_dimensions` a private method in store_dimensions plugin (@janko)
|
612
622
|
|
613
|
-
* Keep `Shrine#extract_mime_type` a private method when loading determine_mime_type plugin (@janko
|
623
|
+
* Keep `Shrine#extract_mime_type` a private method when loading determine_mime_type plugin (@janko)
|
614
624
|
|
615
|
-
* Deprecate loading the backgrounding plugin through the old "background_helpers" alias (@janko
|
625
|
+
* Deprecate loading the backgrounding plugin through the old "background_helpers" alias (@janko)
|
616
626
|
|
617
627
|
## 1.4.2 (2016-04-19)
|
618
628
|
|
619
|
-
* Removed ActiveRecord's automatic support for optimistic locking as it wasn't stable (@janko
|
629
|
+
* Removed ActiveRecord's automatic support for optimistic locking as it wasn't stable (@janko)
|
620
630
|
|
621
|
-
* Fixed record's dataset being modified after promoting preventing further updates with the same instance (@janko
|
631
|
+
* Fixed record's dataset being modified after promoting preventing further updates with the same instance (@janko)
|
622
632
|
|
623
633
|
## 1.4.1 (2016-04-18)
|
624
634
|
|
625
|
-
* Bring back triggering callbacks on promote in ORM plugins, and add support for optimistic locking (@janko
|
635
|
+
* Bring back triggering callbacks on promote in ORM plugins, and add support for optimistic locking (@janko)
|
626
636
|
|
627
637
|
## 1.4.0 (2016-04-15)
|
628
638
|
|
629
|
-
* Return "Content-Length" response header in download_endpoint plugin (@janko
|
639
|
+
* Return "Content-Length" response header in download_endpoint plugin (@janko)
|
630
640
|
|
631
|
-
* Make determine_mime_type and store_dimensions automatically rewind IO with custom analyzer (@janko
|
641
|
+
* Make determine_mime_type and store_dimensions automatically rewind IO with custom analyzer (@janko)
|
632
642
|
|
633
|
-
* Make `before_*` and `after_*` hooks happen before and after `around_*` hooks (@janko
|
643
|
+
* Make `before_*` and `after_*` hooks happen before and after `around_*` hooks (@janko)
|
634
644
|
|
635
|
-
* Rename restore_cached plugin to more accurate "restore_cached_data" (@janko
|
645
|
+
* Rename restore_cached plugin to more accurate "restore_cached_data" (@janko)
|
636
646
|
|
637
|
-
* Prevent errors when attempting to validate dimensions when they are absent (@janko
|
647
|
+
* Prevent errors when attempting to validate dimensions when they are absent (@janko)
|
638
648
|
|
639
|
-
* Remove "thread" gem dependency in parallelize plugin (@janko
|
649
|
+
* Remove "thread" gem dependency in parallelize plugin (@janko)
|
640
650
|
|
641
|
-
* Add `:filename` to data_uri plugin for generating filenames based on content type (@janko
|
651
|
+
* Add `:filename` to data_uri plugin for generating filenames based on content type (@janko)
|
642
652
|
|
643
|
-
* Make user-defined hooks always happen around logging (@janko
|
653
|
+
* Make user-defined hooks always happen around logging (@janko)
|
644
654
|
|
645
|
-
* Add `:presign_location` to direct_upload for generating the key (@janko
|
655
|
+
* Add `:presign_location` to direct_upload for generating the key (@janko)
|
646
656
|
|
647
|
-
* Add separate `:presign_options` option for receiving presign options in direct_upload plugin (@janko
|
657
|
+
* Add separate `:presign_options` option for receiving presign options in direct_upload plugin (@janko)
|
648
658
|
|
649
|
-
* Add ability to generate fake presigns for storages which don't support them for testing (@janko
|
659
|
+
* Add ability to generate fake presigns for storages which don't support them for testing (@janko)
|
650
660
|
|
651
|
-
* Change the `/:storage/:name` route to `/:storage/upload` in direct_upload plugin (@janko
|
661
|
+
* Change the `/:storage/:name` route to `/:storage/upload` in direct_upload plugin (@janko)
|
652
662
|
|
653
|
-
* Fix logger not being inherited in the logging plugin (@janko
|
663
|
+
* Fix logger not being inherited in the logging plugin (@janko)
|
654
664
|
|
655
|
-
* Add delete_promoted plugin for deleting promoted files after record has been updated (@janko
|
665
|
+
* Add delete_promoted plugin for deleting promoted files after record has been updated (@janko)
|
656
666
|
|
657
|
-
* Allow passing phase to `Attacher#promote` and generalize promoting background job (@janko
|
667
|
+
* Allow passing phase to `Attacher#promote` and generalize promoting background job (@janko)
|
658
668
|
|
659
|
-
* Close the cached file after extracting its metadata in restore_cached plugin (@janko
|
669
|
+
* Close the cached file after extracting its metadata in restore_cached plugin (@janko)
|
660
670
|
|
661
|
-
* Rename delete_uploaded plugin to "delete_raw" to better explain its functionality (@janko
|
671
|
+
* Rename delete_uploaded plugin to "delete_raw" to better explain its functionality (@janko)
|
662
672
|
|
663
|
-
* Pass the SSL CA bundle to open-uri when downloading an S3 file (@janko
|
673
|
+
* Pass the SSL CA bundle to open-uri when downloading an S3 file (@janko)
|
664
674
|
|
665
|
-
* Add `Attacher.dump` and `Attacher.load` for writing custom background jobs with custom functionality (@janko
|
675
|
+
* Add `Attacher.dump` and `Attacher.load` for writing custom background jobs with custom functionality (@janko)
|
666
676
|
|
667
|
-
* Fix S3 URL erroring due to not being URL-encoded when `:host` option is used (@janko
|
677
|
+
* Fix S3 URL erroring due to not being URL-encoded when `:host` option is used (@janko)
|
668
678
|
|
669
|
-
* Remove a tiny possibility of a race condition with backgrounding on subsequent updates (@janko
|
679
|
+
* Remove a tiny possibility of a race condition with backgrounding on subsequent updates (@janko)
|
670
680
|
|
671
|
-
* Add `:delegate` option to migration_helpers for opting out of defining methods on the model (@janko
|
681
|
+
* Add `:delegate` option to migration_helpers for opting out of defining methods on the model (@janko)
|
672
682
|
|
673
|
-
* Make logging plugin log number of both input and output files for processing (@janko
|
683
|
+
* Make logging plugin log number of both input and output files for processing (@janko)
|
674
684
|
|
675
|
-
* Make deleting backup work with backgrounding plugin (@janko
|
685
|
+
* Make deleting backup work with backgrounding plugin (@janko)
|
676
686
|
|
677
|
-
* Make storing backup happen *after* promoting instead of before (@janko
|
687
|
+
* Make storing backup happen *after* promoting instead of before (@janko)
|
678
688
|
|
679
|
-
* Add `:fallbacks` to versions plugin for fallback URLs for versions which haven't finished processing (@janko
|
689
|
+
* Add `:fallbacks` to versions plugin for fallback URLs for versions which haven't finished processing (@janko)
|
680
690
|
|
681
|
-
* Fix keep_files not to spawn a background job when file will not be deleted (@janko
|
691
|
+
* Fix keep_files not to spawn a background job when file will not be deleted (@janko)
|
682
692
|
|
683
693
|
## 1.3.0 (2016-03-12)
|
684
694
|
|
685
|
-
* Add `<attachment>_cached?` and `<attachment>_stored?` to migration_helpers plugin (@janko
|
695
|
+
* Add `<attachment>_cached?` and `<attachment>_stored?` to migration_helpers plugin (@janko)
|
686
696
|
|
687
|
-
* Fix `Attacher#backup_file` from backup plugin not to modify the given uploaded file (@janko
|
697
|
+
* Fix `Attacher#backup_file` from backup plugin not to modify the given uploaded file (@janko)
|
688
698
|
|
689
|
-
* Allow modifying UploadedFile's data hash after it's instantiated to change the UploadedFile (@janko
|
699
|
+
* Allow modifying UploadedFile's data hash after it's instantiated to change the UploadedFile (@janko)
|
690
700
|
|
691
|
-
* Deprecate the keep_location plugin (@janko
|
701
|
+
* Deprecate the keep_location plugin (@janko)
|
692
702
|
|
693
|
-
* Don't mutate context hash inside the uploader (@janko
|
703
|
+
* Don't mutate context hash inside the uploader (@janko)
|
694
704
|
|
695
|
-
* Make extracted metadata accessible in `#generate_location` through `:metadata` in context hash (@janko
|
705
|
+
* Make extracted metadata accessible in `#generate_location` through `:metadata` in context hash (@janko)
|
696
706
|
|
697
|
-
* Don't require the "metadata" key when instantiating a `Shrine::UploadedFile` (@janko
|
707
|
+
* Don't require the "metadata" key when instantiating a `Shrine::UploadedFile` (@janko)
|
698
708
|
|
699
|
-
* Add `:include_error` option to remote_url for accessing download error in `:error_message` block (@janko
|
709
|
+
* Add `:include_error` option to remote_url for accessing download error in `:error_message` block (@janko)
|
700
710
|
|
701
|
-
* Give different error message when file wasn't found or was too large in remote_url (@janko
|
711
|
+
* Give different error message when file wasn't found or was too large in remote_url (@janko)
|
702
712
|
|
703
|
-
* Rewind the IO after extracting MIME type with MimeMagic (@janko
|
713
|
+
* Rewind the IO after extracting MIME type with MimeMagic (@janko)
|
704
714
|
|
705
715
|
* Rewind the IO after extracting image dimensions even when extraction failed (@kaapa)
|
706
716
|
|
707
|
-
* Correctly infer the extension in `#generate_location` when uploading an `UploadedFile` (@janko
|
717
|
+
* Correctly infer the extension in `#generate_location` when uploading an `UploadedFile` (@janko)
|
708
718
|
|
709
|
-
* Fix ability for errors to accumulate in data_uri and remote_url plugins when assigning mutliples to same record instance (@janko
|
719
|
+
* Fix ability for errors to accumulate in data_uri and remote_url plugins when assigning mutliples to same record instance (@janko)
|
710
720
|
|
711
|
-
* Bump Down dependency to 2.0.0 in order to fix downloading URLs with "[]" characters (@janko
|
721
|
+
* Bump Down dependency to 2.0.0 in order to fix downloading URLs with "[]" characters (@janko)
|
712
722
|
|
713
|
-
* Add `:namespace` option to pretty_location for including class namespace in location (@janko
|
723
|
+
* Add `:namespace` option to pretty_location for including class namespace in location (@janko)
|
714
724
|
|
715
|
-
* Don't include the namespace of the class in the location with the pretty_location plugin (@janko
|
725
|
+
* Don't include the namespace of the class in the location with the pretty_location plugin (@janko)
|
716
726
|
|
717
727
|
* Remove aws-sdk deprecation warning when storage isn't instantiated with credentials (@reidab)
|
718
728
|
|
719
|
-
* Don't make uploaded file's metadata methods error when the corresponding key-value pair is missing (@janko
|
729
|
+
* Don't make uploaded file's metadata methods error when the corresponding key-value pair is missing (@janko)
|
720
730
|
|
721
731
|
* Close the `UploadedFile` on upload only if it was previously opened, which doesn't happen on S3 COPY (@reidab)
|
722
732
|
|
723
|
-
* Fix `NameError` when silencing "missing record" errors in backgrounding (@janko
|
733
|
+
* Fix `NameError` when silencing "missing record" errors in backgrounding (@janko)
|
724
734
|
|
725
735
|
## 1.2.0 (2016-01-26)
|
726
736
|
|
727
|
-
* Make `Shrine::Attacher.promote` and `Shrine::Attacher.delete` return the record in backgrounding plugin (@janko
|
737
|
+
* Make `Shrine::Attacher.promote` and `Shrine::Attacher.delete` return the record in backgrounding plugin (@janko)
|
728
738
|
|
729
|
-
* Close the IO on upload even if the upload errors (@janko
|
739
|
+
* Close the IO on upload even if the upload errors (@janko)
|
730
740
|
|
731
|
-
* Use a transaction when checking if attachment has changed after storing during promotion (@janko
|
741
|
+
* Use a transaction when checking if attachment has changed after storing during promotion (@janko)
|
732
742
|
|
733
|
-
* Don't attempt to start promoting in background if attachment has already changed (@janko
|
743
|
+
* Don't attempt to start promoting in background if attachment has already changed (@janko)
|
734
744
|
|
735
|
-
* Don't error in backgrounding when record is missing (@janko
|
745
|
+
* Don't error in backgrounding when record is missing (@janko)
|
736
746
|
|
737
747
|
* Prevent multiline content type spoof attempts in validation_helpers (@xzo)
|
738
748
|
|
739
|
-
* Make custom metadata inherited from uploaded files and make `#extract_metadata` called only on caching (@janko
|
749
|
+
* Make custom metadata inherited from uploaded files and make `#extract_metadata` called only on caching (@janko)
|
740
750
|
|
741
751
|
## 1.1.0 (2015-12-26)
|
742
752
|
|
743
|
-
* Rename the "background_helpers" plugin to "backgrounding" (@janko
|
753
|
+
* Rename the "background_helpers" plugin to "backgrounding" (@janko)
|
744
754
|
|
745
|
-
* Rename the `:subdirectory` option to `:prefix` on FileSystem storage (@janko
|
755
|
+
* Rename the `:subdirectory` option to `:prefix` on FileSystem storage (@janko)
|
746
756
|
|
747
|
-
* Add download_endpoint plugin for downloading files uploaded to database storages and for securing downloads (@janko
|
757
|
+
* Add download_endpoint plugin for downloading files uploaded to database storages and for securing downloads (@janko)
|
748
758
|
|
749
|
-
* Make `around_*` hooks return the result of the corresponding action (@janko
|
759
|
+
* Make `around_*` hooks return the result of the corresponding action (@janko)
|
750
760
|
|
751
|
-
* Make the direct upload endpoint customizable, inheritable and inspectable (@janko
|
761
|
+
* Make the direct upload endpoint customizable, inheritable and inspectable (@janko)
|
752
762
|
|
753
|
-
* Add upload_options plugin for dynamically generating storage-specific upload options (@janko
|
763
|
+
* Add upload_options plugin for dynamically generating storage-specific upload options (@janko)
|
754
764
|
|
755
|
-
* Allow the context hash to be modified (@janko
|
765
|
+
* Allow the context hash to be modified (@janko)
|
756
766
|
|
757
|
-
* Fix extension not being returned for storages which remove it from ID (Flickr, SQL, GridFS) (@janko
|
767
|
+
* Fix extension not being returned for storages which remove it from ID (Flickr, SQL, GridFS) (@janko)
|
758
768
|
|
759
|
-
* Delete underlying Tempfiles when closing an `UploadedFile` (@janko
|
769
|
+
* Delete underlying Tempfiles when closing an `UploadedFile` (@janko)
|
760
770
|
|
761
|
-
* Fix background_helpers plugin not working with ActiveJob (@janko
|
771
|
+
* Fix background_helpers plugin not working with ActiveJob (@janko)
|
762
772
|
|
763
|
-
* Add `UploadedFile#base64` to the data_uri plugin (@janko
|
773
|
+
* Add `UploadedFile#base64` to the data_uri plugin (@janko)
|
764
774
|
|
765
|
-
* Optimize `UploadedData#data_uri` to not download the file and instantiate file contents string only once (@janko
|
775
|
+
* Optimize `UploadedData#data_uri` to not download the file and instantiate file contents string only once (@janko)
|
766
776
|
|
767
|
-
* Allow adding S3 upload options dynamically per upload (@janko
|
777
|
+
* Allow adding S3 upload options dynamically per upload (@janko)
|
768
778
|
|
769
|
-
* Add delete_uploaded plugin for automatically deleting files after they're uploaded (@janko
|
779
|
+
* Add delete_uploaded plugin for automatically deleting files after they're uploaded (@janko)
|
770
780
|
|
771
|
-
* Close an open file descriptor left after downloading a FileSystem file (@janko
|
781
|
+
* Close an open file descriptor left after downloading a FileSystem file (@janko)
|
772
782
|
|
773
|
-
* Make `FileSystem#url` Windows compatible (@janko
|
783
|
+
* Make `FileSystem#url` Windows compatible (@janko)
|
774
784
|
|
775
|
-
* Add `UploadedFile#content_type` alias to `#mime_type` for better integration with upload libraries (@janko
|
785
|
+
* Add `UploadedFile#content_type` alias to `#mime_type` for better integration with upload libraries (@janko)
|
776
786
|
|
777
|
-
* Add a `UploadedFile#data_uri` method to the data_uri plugin (@janko
|
787
|
+
* Add a `UploadedFile#data_uri` method to the data_uri plugin (@janko)
|
778
788
|
|
779
|
-
* Allow the data_uri plugin to accept "+" symbols in MIME type names (@janko
|
789
|
+
* Allow the data_uri plugin to accept "+" symbols in MIME type names (@janko)
|
780
790
|
|
781
|
-
* Make the data_uri plugin accept data URIs which aren't base64 encoded (@janko
|
791
|
+
* Make the data_uri plugin accept data URIs which aren't base64 encoded (@janko)
|
782
792
|
|
783
|
-
* Close all IOs after uploading them (@janko
|
793
|
+
* Close all IOs after uploading them (@janko)
|
784
794
|
|
785
|
-
* Allow passing a custom IO object to the Linter (@janko
|
795
|
+
* Allow passing a custom IO object to the Linter (@janko)
|
786
796
|
|
787
|
-
* Add remove_invalid plugin for automatically deleting and deassigning invalid cached files (@janko
|
797
|
+
* Add remove_invalid plugin for automatically deleting and deassigning invalid cached files (@janko)
|
788
798
|
|
789
|
-
* Add `:max_size` option to the direct_upload plugin (@janko
|
799
|
+
* Add `:max_size` option to the direct_upload plugin (@janko)
|
790
800
|
|
791
|
-
* Move `Shrine#default_url` to default_url plugin (@janko
|
801
|
+
* Move `Shrine#default_url` to default_url plugin (@janko)
|
792
802
|
|
793
|
-
* Enable `S3#multi_delete` to delete more than 1000 objects by batching deletes (@janko
|
803
|
+
* Enable `S3#multi_delete` to delete more than 1000 objects by batching deletes (@janko)
|
794
804
|
|
795
|
-
* Add the keep_location plugin for easier debugging or backups (@janko
|
805
|
+
* Add the keep_location plugin for easier debugging or backups (@janko)
|
796
806
|
|
797
|
-
* Add the backup plugin for backing up stored files (@janko
|
807
|
+
* Add the backup plugin for backing up stored files (@janko)
|
798
808
|
|
799
|
-
* Storages don't need to rewind the files after upload anymore (@janko
|
809
|
+
* Storages don't need to rewind the files after upload anymore (@janko)
|
800
810
|
|
801
811
|
* Make S3 presigns work when the `:endpoint` option is given (@NetsoftHoldings)
|
802
812
|
|
803
|
-
* Fix parallelize plugin to always work with the moving plugin (@janko
|
813
|
+
* Fix parallelize plugin to always work with the moving plugin (@janko)
|
804
814
|
|
805
|
-
* Fix S3 storage to handle copying files that are larger than 5GB (@janko
|
815
|
+
* Fix S3 storage to handle copying files that are larger than 5GB (@janko)
|
806
816
|
|
807
|
-
* Add `:upload_options` to S3 storage for applying additional options on upload (@janko
|
817
|
+
* Add `:upload_options` to S3 storage for applying additional options on upload (@janko)
|
808
818
|
|
809
819
|
* Reduce length of URLs generated with pretty_location plugin (@gshaw)
|
810
820
|
|
811
821
|
## 1.0.0 (2015-11-27)
|
812
822
|
|
813
|
-
* Improve Windows compatibility in the FileSystem storage (@janko
|
823
|
+
* Improve Windows compatibility in the FileSystem storage (@janko)
|
814
824
|
|
815
|
-
* Remove the ability for FileSystem storage to accept IDs starting with a slash (@janko
|
825
|
+
* Remove the ability for FileSystem storage to accept IDs starting with a slash (@janko)
|
816
826
|
|
817
|
-
* Fix keep_files plugin requiring context for deleting files (@janko
|
827
|
+
* Fix keep_files plugin requiring context for deleting files (@janko)
|
818
828
|
|
819
|
-
* Extract assigning cached files by parsed JSON into a parsed_json plugin (@janko
|
829
|
+
* Extract assigning cached files by parsed JSON into a parsed_json plugin (@janko)
|
820
830
|
|
821
|
-
* Add `(before|around|after)_upload` to the hooks plugin (@janko
|
831
|
+
* Add `(before|around|after)_upload` to the hooks plugin (@janko)
|
822
832
|
|
823
|
-
* Fix `S3#multi_delete` and `S3#clear!` not using the prefix (@janko
|
833
|
+
* Fix `S3#multi_delete` and `S3#clear!` not using the prefix (@janko)
|
824
834
|
|
825
|
-
* Add ability to pass presign options to storages in the direct_upload plugin (@janko
|
835
|
+
* Add ability to pass presign options to storages in the direct_upload plugin (@janko)
|
826
836
|
|
827
|
-
* Remove `Shrine.io!` because it was actually meant to be only for internal use (@janko
|
837
|
+
* Remove `Shrine.io!` because it was actually meant to be only for internal use (@janko)
|
828
838
|
|
829
|
-
* Remove `Shrine.delete` because of redundancy (@janko
|
839
|
+
* Remove `Shrine.delete` because of redundancy (@janko)
|
830
840
|
|
831
|
-
* Add default_url_options plugin for specifiying default URL options for uploaded files (@janko
|
841
|
+
* Add default_url_options plugin for specifiying default URL options for uploaded files (@janko)
|
832
842
|
|
833
|
-
* Add module_include plugin for easily extending core classes for given uploader (@janko
|
843
|
+
* Add module_include plugin for easily extending core classes for given uploader (@janko)
|
834
844
|
|
835
|
-
* Add support for Sequel's Postgres JSON column support (@janko
|
845
|
+
* Add support for Sequel's Postgres JSON column support (@janko)
|
836
846
|
|
837
|
-
* Fix migration_helpers plugin not detecting when column changed (@janko
|
847
|
+
* Fix migration_helpers plugin not detecting when column changed (@janko)
|
838
848
|
|
839
|
-
* Add the `:public` option to S3 storage for retrieving public URLs which aren't signed (@janko
|
849
|
+
* Add the `:public` option to S3 storage for retrieving public URLs which aren't signed (@janko)
|
840
850
|
|
841
|
-
* Remove the delete_invalid plugin, as it could cause lame errors (@janko
|
851
|
+
* Remove the delete_invalid plugin, as it could cause lame errors (@janko)
|
842
852
|
|
843
|
-
* Don't delete cached files anymore, as it can cause errors with backgrounding (@janko
|
853
|
+
* Don't delete cached files anymore, as it can cause errors with backgrounding (@janko)
|
844
854
|
|
845
|
-
* Add a `:host` option to the S3 storage for specifying CDNs (@janko
|
855
|
+
* Add a `:host` option to the S3 storage for specifying CDNs (@janko)
|
846
856
|
|
847
|
-
* Don't allow same attachment to be promoted multiple times with backgrounding (@janko
|
857
|
+
* Don't allow same attachment to be promoted multiple times with backgrounding (@janko)
|
848
858
|
|
849
|
-
* Fix recache plugin causing an infinite loop (@janko
|
859
|
+
* Fix recache plugin causing an infinite loop (@janko)
|
850
860
|
|
851
|
-
* Fix an encoding error in determine_mime_type when using `:file` with non-files (@janko
|
861
|
+
* Fix an encoding error in determine_mime_type when using `:file` with non-files (@janko)
|
852
862
|
|
853
|
-
* Make `UploadedFile` actually delete itself only once (@janko
|
863
|
+
* Make `UploadedFile` actually delete itself only once (@janko)
|
854
864
|
|
855
|
-
* Make `UploadedFile#inspect` cleaner by showing only the data hash (@janko
|
865
|
+
* Make `UploadedFile#inspect` cleaner by showing only the data hash (@janko)
|
856
866
|
|
857
|
-
* Make determine_mime_type able to accept non-files when using :file (@janko
|
867
|
+
* Make determine_mime_type able to accept non-files when using :file (@janko)
|
858
868
|
|
859
|
-
* Make logging plugin accept PORO instance which don't have an #id (@janko
|
869
|
+
* Make logging plugin accept PORO instance which don't have an #id (@janko)
|
860
870
|
|
861
|
-
* Add rack_file plugin for attaching Rack file hashes to models (@janko
|
871
|
+
* Add rack_file plugin for attaching Rack file hashes to models (@janko)
|