activestorage 7.0.8.5 → 7.1.0.beta1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +135 -348
- data/MIT-LICENSE +1 -1
- data/README.md +4 -4
- data/app/assets/javascripts/activestorage.esm.js +8 -4
- data/app/assets/javascripts/activestorage.js +9 -3
- data/app/controllers/active_storage/disk_controller.rb +4 -2
- data/app/controllers/concerns/active_storage/file_server.rb +4 -1
- data/app/javascript/activestorage/blob_record.js +4 -1
- data/app/javascript/activestorage/direct_upload.js +3 -2
- data/app/javascript/activestorage/index.js +3 -1
- data/app/jobs/active_storage/transform_job.rb +12 -0
- data/app/models/active_storage/attachment.rb +87 -13
- data/app/models/active_storage/blob/analyzable.rb +4 -3
- data/app/models/active_storage/blob/identifiable.rb +1 -0
- data/app/models/active_storage/blob/representable.rb +7 -3
- data/app/models/active_storage/blob.rb +25 -45
- data/app/models/active_storage/current.rb +0 -10
- data/app/models/active_storage/filename.rb +2 -0
- data/app/models/active_storage/named_variant.rb +21 -0
- data/app/models/active_storage/preview.rb +5 -3
- data/app/models/active_storage/variant.rb +8 -7
- data/app/models/active_storage/variant_with_record.rb +19 -7
- data/app/models/active_storage/variation.rb +5 -3
- data/db/migrate/20170806125915_create_active_storage_tables.rb +1 -1
- data/lib/active_storage/analyzer/audio_analyzer.rb +16 -4
- data/lib/active_storage/analyzer/image_analyzer.rb +2 -0
- data/lib/active_storage/analyzer/video_analyzer.rb +3 -1
- data/lib/active_storage/analyzer.rb +2 -0
- data/lib/active_storage/attached/changes/create_many.rb +8 -3
- data/lib/active_storage/attached/changes/create_one.rb +14 -2
- data/lib/active_storage/attached/many.rb +5 -4
- data/lib/active_storage/attached/model.rb +66 -43
- data/lib/active_storage/attached/one.rb +5 -4
- data/lib/active_storage/attached.rb +2 -0
- data/lib/active_storage/deprecator.rb +7 -0
- data/lib/active_storage/engine.rb +11 -7
- data/lib/active_storage/fixture_set.rb +2 -0
- data/lib/active_storage/gem_version.rb +4 -4
- data/lib/active_storage/log_subscriber.rb +12 -0
- data/lib/active_storage/previewer.rb +8 -1
- data/lib/active_storage/reflection.rb +3 -3
- data/lib/active_storage/service/azure_storage_service.rb +2 -0
- data/lib/active_storage/service/disk_service.rb +2 -0
- data/lib/active_storage/service/gcs_service.rb +11 -20
- data/lib/active_storage/service/mirror_service.rb +10 -5
- data/lib/active_storage/service/s3_service.rb +2 -0
- data/lib/active_storage/service.rb +4 -2
- data/lib/active_storage/transformers/transformer.rb +2 -0
- data/lib/active_storage/version.rb +1 -1
- data/lib/active_storage.rb +19 -3
- metadata +19 -30
@@ -3,6 +3,8 @@
|
|
3
3
|
require "active_support/core_ext/module/delegation"
|
4
4
|
|
5
5
|
module ActiveStorage
|
6
|
+
# = Active Storage Mirror \Service
|
7
|
+
#
|
6
8
|
# Wraps a set of mirror services and provides a single ActiveStorage::Service object that will all
|
7
9
|
# have the files uploaded to them. A +primary+ service is designated to answer calls to:
|
8
10
|
# * +download+
|
@@ -30,13 +32,13 @@ module ActiveStorage
|
|
30
32
|
@primary, @mirrors = primary, mirrors
|
31
33
|
end
|
32
34
|
|
33
|
-
# Upload the +io+ to the +key+ specified to all services.
|
35
|
+
# Upload the +io+ to the +key+ specified to all services. The upload to the primary service is done synchronously
|
36
|
+
# whereas the upload to the mirrors is done asynchronously. If a +checksum+ is provided, all services will
|
34
37
|
# ensure a match when the upload has completed or raise an ActiveStorage::IntegrityError.
|
35
38
|
def upload(key, io, checksum: nil, **options)
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
end
|
39
|
+
io.rewind
|
40
|
+
primary.upload key, io, checksum: checksum, **options
|
41
|
+
mirror_later key, checksum: checksum
|
40
42
|
end
|
41
43
|
|
42
44
|
# Delete the file at the +key+ on all services.
|
@@ -49,6 +51,9 @@ module ActiveStorage
|
|
49
51
|
perform_across_services :delete_prefixed, prefix
|
50
52
|
end
|
51
53
|
|
54
|
+
def mirror_later(key, checksum:) # :nodoc:
|
55
|
+
ActiveStorage::MirrorJob.perform_later key, checksum: checksum
|
56
|
+
end
|
52
57
|
|
53
58
|
# Copy the file at the +key+ from the primary service to each of the mirrors where it doesn't already exist.
|
54
59
|
def mirror(key, checksum:)
|
@@ -6,6 +6,8 @@ require "aws-sdk-s3"
|
|
6
6
|
require "active_support/core_ext/numeric/bytes"
|
7
7
|
|
8
8
|
module ActiveStorage
|
9
|
+
# = Active Storage \S3 \Service
|
10
|
+
#
|
9
11
|
# Wraps the Amazon Simple Storage Service (S3) as an Active Storage service.
|
10
12
|
# See ActiveStorage::Service for the generic API documentation that applies to all services.
|
11
13
|
class Service::S3Service < Service
|
@@ -6,6 +6,8 @@ require "action_dispatch"
|
|
6
6
|
require "action_dispatch/http/content_disposition"
|
7
7
|
|
8
8
|
module ActiveStorage
|
9
|
+
# = Active Storage \Service
|
10
|
+
#
|
9
11
|
# Abstract class serving as an interface for concrete services.
|
10
12
|
#
|
11
13
|
# The available services are:
|
@@ -16,7 +18,7 @@ module ActiveStorage
|
|
16
18
|
# * +AzureStorage+, to manage attachments through Microsoft Azure Storage.
|
17
19
|
# * +Mirror+, to be able to use several services to manage attachments.
|
18
20
|
#
|
19
|
-
# Inside a Rails application, you can set-up your services through the
|
21
|
+
# Inside a \Rails application, you can set-up your services through the
|
20
22
|
# generated <tt>config/storage.yml</tt> file and reference one
|
21
23
|
# of the aforementioned constant under the +service+ key. For example:
|
22
24
|
#
|
@@ -31,7 +33,7 @@ module ActiveStorage
|
|
31
33
|
#
|
32
34
|
# config.active_storage.service = :local
|
33
35
|
#
|
34
|
-
# If you are using Active Storage outside of a Ruby on Rails application, you
|
36
|
+
# If you are using Active Storage outside of a Ruby on \Rails application, you
|
35
37
|
# can configure the service to use like this:
|
36
38
|
#
|
37
39
|
# ActiveStorage::Blob.service = ActiveStorage::Service.configure(
|
data/lib/active_storage.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
#--
|
4
|
-
# Copyright (c)
|
4
|
+
# Copyright (c) David Heinemeier Hansson, 37signals LLC
|
5
5
|
#
|
6
6
|
# Permission is hereby granted, free of charge, to any person obtaining
|
7
7
|
# a copy of this software and associated documentation files (the
|
@@ -29,10 +29,13 @@ require "active_support/rails"
|
|
29
29
|
require "active_support/core_ext/numeric/time"
|
30
30
|
|
31
31
|
require "active_storage/version"
|
32
|
+
require "active_storage/deprecator"
|
32
33
|
require "active_storage/errors"
|
33
34
|
|
34
35
|
require "marcel"
|
35
36
|
|
37
|
+
# :markup: markdown
|
38
|
+
# :include: activestorage/README.md
|
36
39
|
module ActiveStorage
|
37
40
|
extend ActiveSupport::Autoload
|
38
41
|
|
@@ -357,12 +360,25 @@ module ActiveStorage
|
|
357
360
|
mattr_accessor :draw_routes, default: true
|
358
361
|
mattr_accessor :resolve_model_to_route, default: :rails_storage_redirect
|
359
362
|
|
360
|
-
mattr_accessor :replace_on_assign_to_many, default: false
|
361
363
|
mattr_accessor :track_variants, default: false
|
362
364
|
|
363
365
|
mattr_accessor :video_preview_arguments, default: "-y -vframes 1 -f image2"
|
364
366
|
|
365
|
-
|
367
|
+
def self.replace_on_assign_to_many
|
368
|
+
ActiveStorage.deprecator.warn("config.active_storage.replace_on_assign_to_many is deprecated and has no effect.")
|
369
|
+
end
|
370
|
+
|
371
|
+
def self.replace_on_assign_to_many=(value)
|
372
|
+
ActiveStorage.deprecator.warn("config.active_storage.replace_on_assign_to_many is deprecated and has no effect.")
|
373
|
+
end
|
374
|
+
|
375
|
+
def self.silence_invalid_content_types_warning
|
376
|
+
ActiveStorage.deprecator.warn("config.active_storage.silence_invalid_content_types_warning is deprecated and has no effect.")
|
377
|
+
end
|
378
|
+
|
379
|
+
def self.silence_invalid_content_types_warning=(value)
|
380
|
+
ActiveStorage.deprecator.warn("config.active_storage.silence_invalid_content_types_warning is deprecated and has no effect.")
|
381
|
+
end
|
366
382
|
|
367
383
|
module Transformers
|
368
384
|
extend ActiveSupport::Autoload
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: activestorage
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 7.0.
|
4
|
+
version: 7.1.0.beta1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Heinemeier Hansson
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-09-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -16,56 +16,56 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 7.0.
|
19
|
+
version: 7.1.0.beta1
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 7.0.
|
26
|
+
version: 7.1.0.beta1
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: actionpack
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - '='
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 7.0.
|
33
|
+
version: 7.1.0.beta1
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - '='
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 7.0.
|
40
|
+
version: 7.1.0.beta1
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: activejob
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - '='
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: 7.0.
|
47
|
+
version: 7.1.0.beta1
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - '='
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 7.0.
|
54
|
+
version: 7.1.0.beta1
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: activerecord
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - '='
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 7.0.
|
61
|
+
version: 7.1.0.beta1
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - '='
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 7.0.
|
68
|
+
version: 7.1.0.beta1
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: marcel
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -80,20 +80,6 @@ dependencies:
|
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '1.0'
|
83
|
-
- !ruby/object:Gem::Dependency
|
84
|
-
name: mini_mime
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - ">="
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: 1.1.0
|
90
|
-
type: :runtime
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - ">="
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: 1.1.0
|
97
83
|
description: Attach cloud and local files in Rails applications.
|
98
84
|
email: david@loudthinking.com
|
99
85
|
executables: []
|
@@ -131,6 +117,7 @@ files:
|
|
131
117
|
- app/jobs/active_storage/base_job.rb
|
132
118
|
- app/jobs/active_storage/mirror_job.rb
|
133
119
|
- app/jobs/active_storage/purge_job.rb
|
120
|
+
- app/jobs/active_storage/transform_job.rb
|
134
121
|
- app/models/active_storage/attachment.rb
|
135
122
|
- app/models/active_storage/blob.rb
|
136
123
|
- app/models/active_storage/blob/analyzable.rb
|
@@ -138,6 +125,7 @@ files:
|
|
138
125
|
- app/models/active_storage/blob/representable.rb
|
139
126
|
- app/models/active_storage/current.rb
|
140
127
|
- app/models/active_storage/filename.rb
|
128
|
+
- app/models/active_storage/named_variant.rb
|
141
129
|
- app/models/active_storage/preview.rb
|
142
130
|
- app/models/active_storage/record.rb
|
143
131
|
- app/models/active_storage/variant.rb
|
@@ -171,6 +159,7 @@ files:
|
|
171
159
|
- lib/active_storage/attached/many.rb
|
172
160
|
- lib/active_storage/attached/model.rb
|
173
161
|
- lib/active_storage/attached/one.rb
|
162
|
+
- lib/active_storage/deprecator.rb
|
174
163
|
- lib/active_storage/downloader.rb
|
175
164
|
- lib/active_storage/engine.rb
|
176
165
|
- lib/active_storage/errors.rb
|
@@ -199,10 +188,10 @@ licenses:
|
|
199
188
|
- MIT
|
200
189
|
metadata:
|
201
190
|
bug_tracker_uri: https://github.com/rails/rails/issues
|
202
|
-
changelog_uri: https://github.com/rails/rails/blob/v7.0.
|
203
|
-
documentation_uri: https://api.rubyonrails.org/v7.0.
|
191
|
+
changelog_uri: https://github.com/rails/rails/blob/v7.1.0.beta1/activestorage/CHANGELOG.md
|
192
|
+
documentation_uri: https://api.rubyonrails.org/v7.1.0.beta1/
|
204
193
|
mailing_list_uri: https://discuss.rubyonrails.org/c/rubyonrails-talk
|
205
|
-
source_code_uri: https://github.com/rails/rails/tree/v7.0.
|
194
|
+
source_code_uri: https://github.com/rails/rails/tree/v7.1.0.beta1/activestorage
|
206
195
|
rubygems_mfa_required: 'true'
|
207
196
|
post_install_message:
|
208
197
|
rdoc_options: []
|
@@ -215,11 +204,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
215
204
|
version: 2.7.0
|
216
205
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
217
206
|
requirements:
|
218
|
-
- - "
|
207
|
+
- - ">"
|
219
208
|
- !ruby/object:Gem::Version
|
220
|
-
version:
|
209
|
+
version: 1.3.1
|
221
210
|
requirements: []
|
222
|
-
rubygems_version: 3.
|
211
|
+
rubygems_version: 3.4.18
|
223
212
|
signing_key:
|
224
213
|
specification_version: 4
|
225
214
|
summary: Local and cloud file storage framework.
|