shrine-gridfs 0.3.2 → 0.4.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 +5 -5
- data/README.md +9 -6
- data/lib/shrine/storage/gridfs.rb +5 -10
- data/shrine-gridfs.gemspec +4 -4
- metadata +14 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 07be2986df88890481783403c520c27e27ea6744c7cdd091b7b454fb8c065dfa
|
4
|
+
data.tar.gz: 514a841b237934c1c9c000120d13b5f0da6bdd6946329914cc12a4a2bfb7f35c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b83d5c85530b1c84a981232fcb2d57fd011dd4784105f82ea1ab91172c2c57764c486c55eb640647597bef4d84964a4d99922fe132a700e89ab931f14289542b
|
7
|
+
data.tar.gz: ca43699b252efab8cc5c0958d3880ec13da945c949f19c779e0a7495a3f890079326a399f1964b7dc4666a1a798838de5f8f4ed664be8254f4a4774c246cc091
|
data/README.md
CHANGED
@@ -25,10 +25,13 @@ Shrine::Storage::Gridfs.new(client: client)
|
|
25
25
|
### Prefix
|
26
26
|
|
27
27
|
The default prefix (bucket name) is "fs", you can change it with the `:prefix`
|
28
|
-
option
|
28
|
+
option, which is useful if you want to separate temporary and permanent storage.
|
29
29
|
|
30
30
|
```rb
|
31
|
-
Shrine
|
31
|
+
Shrine.storages = {
|
32
|
+
cache: Shrine::Storage::Gridfs.new(prefix: "temp", **options),
|
33
|
+
store: Shrine::Storage::Gridfs.new(prefix: "fs", **options),
|
34
|
+
}
|
32
35
|
```
|
33
36
|
|
34
37
|
### Chunk size
|
@@ -37,7 +40,7 @@ By default the Gridfs storage will store files in chunks of 256KB, you can
|
|
37
40
|
change that via `:chunk_size`:
|
38
41
|
|
39
42
|
```rb
|
40
|
-
Shrine::Storage::Gridfs.new(
|
43
|
+
Shrine::Storage::Gridfs.new(chunk_size: 1*1024*1024, **options) # 1MB
|
41
44
|
```
|
42
45
|
|
43
46
|
### Batch size
|
@@ -46,7 +49,7 @@ When Gridfs storage uploads or copies a file, it will ensure that no more
|
|
46
49
|
than `:batch_size` of data is loaded into memory at once (defaults to 5MB).
|
47
50
|
|
48
51
|
```rb
|
49
|
-
Shrine::Storage::Gridfs.new(
|
52
|
+
Shrine::Storage::Gridfs.new(batch_size: 10*1024*1024, **options) # 10MB
|
50
53
|
```
|
51
54
|
|
52
55
|
### URLs
|
@@ -59,7 +62,7 @@ Shrine.plugin :download_endpoint, storages: [:store]
|
|
59
62
|
```
|
60
63
|
```rb
|
61
64
|
Rails.application.routes.draw do
|
62
|
-
mount Shrine
|
65
|
+
mount Shrine.download_endpoint => "/attachments"
|
63
66
|
end
|
64
67
|
```
|
65
68
|
```rb
|
@@ -83,5 +86,5 @@ This gem was inspired by [refile-gridfs].
|
|
83
86
|
[MIT](http://opensource.org/licenses/MIT)
|
84
87
|
|
85
88
|
[GridFS]: https://docs.mongodb.org/v3.0/core/gridfs/
|
86
|
-
[Shrine]: https://github.com/
|
89
|
+
[Shrine]: https://github.com/shrinerb/shrine
|
87
90
|
[refile-gridfs]: https://github.com/Titinux/refile-gridfs
|
@@ -26,14 +26,15 @@ class Shrine
|
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
29
|
-
def open(id)
|
29
|
+
def open(id, rewindable: true, **)
|
30
30
|
content_length = file_info(id)[:length]
|
31
31
|
stream = bucket.open_download_stream(bson_id(id))
|
32
32
|
|
33
33
|
Down::ChunkedIO.new(
|
34
|
-
size:
|
35
|
-
chunks:
|
36
|
-
on_close:
|
34
|
+
size: content_length,
|
35
|
+
chunks: stream.enum_for(:each),
|
36
|
+
on_close: -> { stream.close },
|
37
|
+
rewindable: rewindable,
|
37
38
|
)
|
38
39
|
end
|
39
40
|
|
@@ -46,12 +47,6 @@ class Shrine
|
|
46
47
|
rescue Mongo::Error::FileNotFound
|
47
48
|
end
|
48
49
|
|
49
|
-
def multi_delete(ids)
|
50
|
-
ids = ids.map { |id| bson_id(id) }
|
51
|
-
files_collection.find(_id: {"$in" => ids}).delete_many
|
52
|
-
chunks_collection.find(files_id: {"$in" => ids}).delete_many
|
53
|
-
end
|
54
|
-
|
55
50
|
def url(id, **)
|
56
51
|
end
|
57
52
|
|
data/shrine-gridfs.gemspec
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
Gem::Specification.new do |gem|
|
2
2
|
gem.name = "shrine-gridfs"
|
3
|
-
gem.version = "0.
|
3
|
+
gem.version = "0.4.0"
|
4
4
|
|
5
5
|
gem.required_ruby_version = ">= 2.1"
|
6
6
|
|
7
7
|
gem.summary = "Provides MongoDB's GridFS storage for Shrine."
|
8
|
-
gem.homepage = "https://github.com/
|
8
|
+
gem.homepage = "https://github.com/shrinerb/shrine-gridfs"
|
9
9
|
gem.authors = ["Janko Marohnić"]
|
10
10
|
gem.email = ["janko.marohnic@gmail.com"]
|
11
11
|
gem.license = "MIT"
|
@@ -13,9 +13,9 @@ Gem::Specification.new do |gem|
|
|
13
13
|
gem.files = Dir["README.md", "LICENSE.txt", "lib/**/*.rb", "shrine-gridfs.gemspec"]
|
14
14
|
gem.require_path = "lib"
|
15
15
|
|
16
|
-
gem.add_dependency "shrine", "~> 2.2"
|
16
|
+
gem.add_dependency "shrine", "~> 2.2", "< 4"
|
17
17
|
gem.add_dependency "mongo", ">= 2.2.2", "< 3"
|
18
|
-
gem.add_dependency "down", "
|
18
|
+
gem.add_dependency "down", "~> 4.0"
|
19
19
|
|
20
20
|
gem.add_development_dependency "rake"
|
21
21
|
gem.add_development_dependency "minitest"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shrine-gridfs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Janko Marohnić
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-09-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: shrine
|
@@ -17,6 +17,9 @@ dependencies:
|
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '2.2'
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '4'
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -24,6 +27,9 @@ dependencies:
|
|
24
27
|
- - "~>"
|
25
28
|
- !ruby/object:Gem::Version
|
26
29
|
version: '2.2'
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '4'
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: mongo
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
@@ -48,16 +54,16 @@ dependencies:
|
|
48
54
|
name: down
|
49
55
|
requirement: !ruby/object:Gem::Requirement
|
50
56
|
requirements:
|
51
|
-
- - "
|
57
|
+
- - "~>"
|
52
58
|
- !ruby/object:Gem::Version
|
53
|
-
version:
|
59
|
+
version: '4.0'
|
54
60
|
type: :runtime
|
55
61
|
prerelease: false
|
56
62
|
version_requirements: !ruby/object:Gem::Requirement
|
57
63
|
requirements:
|
58
|
-
- - "
|
64
|
+
- - "~>"
|
59
65
|
- !ruby/object:Gem::Version
|
60
|
-
version:
|
66
|
+
version: '4.0'
|
61
67
|
- !ruby/object:Gem::Dependency
|
62
68
|
name: rake
|
63
69
|
requirement: !ruby/object:Gem::Requirement
|
@@ -111,7 +117,7 @@ files:
|
|
111
117
|
- README.md
|
112
118
|
- lib/shrine/storage/gridfs.rb
|
113
119
|
- shrine-gridfs.gemspec
|
114
|
-
homepage: https://github.com/
|
120
|
+
homepage: https://github.com/shrinerb/shrine-gridfs
|
115
121
|
licenses:
|
116
122
|
- MIT
|
117
123
|
metadata: {}
|
@@ -130,8 +136,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
130
136
|
- !ruby/object:Gem::Version
|
131
137
|
version: '0'
|
132
138
|
requirements: []
|
133
|
-
|
134
|
-
rubygems_version: 2.5.1
|
139
|
+
rubygems_version: 3.0.3
|
135
140
|
signing_key:
|
136
141
|
specification_version: 4
|
137
142
|
summary: Provides MongoDB's GridFS storage for Shrine.
|