shrine-cloudimage 0.1.1 → 0.2.0
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/README.md +32 -2
- data/lib/shrine/plugins/cloudimage.rb +15 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a276745ba3cbba20a4a04c21cd3920ececf68924ce41583a4be2f2968507eaab
|
4
|
+
data.tar.gz: e3b43a01bfd7013e1469970346536b336dd70c364b0a1e6ae41a5ca63c81a84f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ef40813ee89adbffaab70059e4c98d16fa67994d2841f8352782af10eac6516966b4c78216467ad8aa528864bfb3a45a2ca01f55cc7baa478edeee0bc70a4bef
|
7
|
+
data.tar.gz: 8b61a11ac7328fa8ad04d04f3d0f0383a2569e87f8c3e84d61c01f9cc9e69830a1ae6527f39a873e1b4c1429207547fe17013db6e3f860170f9f0b2eb8ce4dcf
|
data/README.md
CHANGED
@@ -10,6 +10,7 @@ Supports Ruby `2.4` and above, `JRuby`, and `TruffleRuby`.
|
|
10
10
|
- [Installation](#installation)
|
11
11
|
- [Configuration](#configuration)
|
12
12
|
- [Usage](#usage)
|
13
|
+
- [Invalidation API](#invalidation-api)
|
13
14
|
- [Development](#development)
|
14
15
|
- [Contributing](#contributing)
|
15
16
|
- [License](#license)
|
@@ -50,8 +51,7 @@ Shrine.plugin :cloudimage, Cloudimage::Client.new(
|
|
50
51
|
)
|
51
52
|
```
|
52
53
|
|
53
|
-
See [`cloudimage`]
|
54
|
-
of available options.
|
54
|
+
See [`cloudimage`][cloudimage] for a list of available options.
|
55
55
|
|
56
56
|
## Usage
|
57
57
|
|
@@ -63,6 +63,33 @@ photo.image.cloudimage_url(w: 300, h: 300, blur: 5)
|
|
63
63
|
# => "https://token.cloudimg.io/v7/https://my-bucket.s3.us-east-1.amazonaws.com/assets/image.jpg?blur=5&h=300&w=300"
|
64
64
|
```
|
65
65
|
|
66
|
+
Cloudimage client can also be accessed directly. This way you can centralize your
|
67
|
+
config in Shrine initializer and reuse it across your codebase:
|
68
|
+
|
69
|
+
```ruby
|
70
|
+
uri = Shrine.cloudimage_client.path('/assets/image.png')
|
71
|
+
uri.w(200).h(400).to_url
|
72
|
+
# => "https://token.cloudimg.io/v7/assets/image.png?h=400&w=200"
|
73
|
+
```
|
74
|
+
|
75
|
+
### Invalidation API
|
76
|
+
|
77
|
+
Set `:invalidate` to `true` if you want images to be automatically
|
78
|
+
[purged][invalidation] from Cloudimage on deletion:
|
79
|
+
|
80
|
+
```rb
|
81
|
+
Shrine.plugin :cloudimage, client: { token: 'token', api_key: 'key' }, invalidate: true
|
82
|
+
```
|
83
|
+
|
84
|
+
You can also invalidate all cached transformations of the given image manually with
|
85
|
+
`Shrine::UploadedFile#cloudimage_invalidate`:
|
86
|
+
|
87
|
+
```rb
|
88
|
+
photo.image.cloudimage_invalidate
|
89
|
+
```
|
90
|
+
|
91
|
+
Note that invalidation requires passing the `:api_key` option to your Cloudimage client.
|
92
|
+
|
66
93
|
## Development
|
67
94
|
|
68
95
|
After checking out the repo, run `bundle install` to install dependencies.
|
@@ -78,3 +105,6 @@ are expected to adhere to the
|
|
78
105
|
## License
|
79
106
|
|
80
107
|
[MIT](https://opensource.org/licenses/MIT)
|
108
|
+
|
109
|
+
[invalidation]: https://docs.cloudimage.io/go/cloudimage-documentation-v7/en/caching-acceleration/invalidation-api
|
110
|
+
[cloudimage]: https://github.com/scaleflex/cloudimage-rb
|
@@ -10,7 +10,7 @@ class Shrine
|
|
10
10
|
opts[:client] = ::Cloudimage::Client.new(**opts[:client])
|
11
11
|
end
|
12
12
|
|
13
|
-
uploader.opts[:cloudimage] ||= {}
|
13
|
+
uploader.opts[:cloudimage] ||= { invalidate: false }
|
14
14
|
uploader.opts[:cloudimage].merge!(**opts)
|
15
15
|
|
16
16
|
return if uploader.cloudimage_client
|
@@ -29,11 +29,25 @@ class Shrine
|
|
29
29
|
cloudimage_client.path(url).to_url(**options)
|
30
30
|
end
|
31
31
|
|
32
|
+
def delete
|
33
|
+
super
|
34
|
+
cloudimage_invalidate if cloudimage_invalidate?
|
35
|
+
end
|
36
|
+
|
37
|
+
def cloudimage_invalidate
|
38
|
+
path = URI.parse(cloudimage_url).path
|
39
|
+
cloudimage_client.invalidate_original(path)
|
40
|
+
end
|
41
|
+
|
32
42
|
private
|
33
43
|
|
34
44
|
def cloudimage_client
|
35
45
|
shrine_class.cloudimage_client
|
36
46
|
end
|
47
|
+
|
48
|
+
def cloudimage_invalidate?
|
49
|
+
shrine_class.opts[:cloudimage][:invalidate]
|
50
|
+
end
|
37
51
|
end
|
38
52
|
end
|
39
53
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shrine-cloudimage
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jan Klimo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-08-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cloudimage
|