shrine-transloadit 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f9ad060395c4432e137702840eba7f23eef980b5
4
- data.tar.gz: 983a7aaf98794573d4f946fe14d0014162b02bfd
3
+ metadata.gz: 103994ecec1d21c32779635c5a44fa5e9c6bdf87
4
+ data.tar.gz: 2d8a3422d5fbc6905240915ddc75ff0bc7315d9f
5
5
  SHA512:
6
- metadata.gz: 48003055afa7b725f0f42213daf2dedb6ecf91d03f8c5805921b0ff57953202aa0a8463300a40246cb1b0984eda816972cd8a0af2b99676188ac62bd18e010c0
7
- data.tar.gz: a4aec56c9856366f4d8fb87c00ce6d6ff8f91750033ed6c0aba48b241533358c6bc5af7b4930f7bda463ebf06ff35322de5fc948d229597b8e855808439d4bdc
6
+ metadata.gz: a85785e545c36594dedc6897e89615970f017eba1f2364cc9a9de62909e761c2bab4d752c8fbe9574766ed29f7f65886ce6d28d967c098a3059f95f74be05a0f
7
+ data.tar.gz: bb0dd002e5156cc62aec52df497655451d5cf3abba75f084a6701a4ac0dfa6f86bec971648c0d904fc481dc923f6cf3447807f68972b86caa03518746edb820f
data/README.md CHANGED
@@ -21,28 +21,26 @@ gem "aws-sdk"
21
21
  require "shrine"
22
22
  require "shrine/storage/s3"
23
23
 
24
- s3_options = {
24
+ Shrine.storages[:store] = Shrine::Storage::S3.new(
25
25
  access_key_id: "xyz",
26
26
  secret_access_key: "abc",
27
27
  region: "my-region",
28
28
  bucket: "my-app",
29
- }
30
-
31
- Shrine.storages = {
32
- cache: Shrine::Storage::S3.new(prefix: "cache", **s3_options),
33
- store: Shrine::Storage::S3.new(prefix: "store", **s3_options),
34
- }
29
+ )
35
30
 
36
31
  Shrine.plugin :transloadit,
37
32
  auth_key: "your transloadit key",
38
33
  auth_secret: "your transloadit secret"
39
34
  ```
35
+
40
36
  ```rb
41
37
  post "/webhooks/transloadit" do
42
38
  Shrine::Attacher.transloadit_save(params)
43
39
  end
44
40
  ```
45
41
 
42
+ With this setup you can do [direct uploads](#direct-uploads) to Transloadit.
43
+
46
44
  ## How it works
47
45
 
48
46
  Transloadit works in a way that you create an "assembly", which contains all
@@ -56,6 +54,9 @@ a URL to the route in your app where you'd like Transloadit to POST the results
56
54
  of processing. Then you can call the plugin again in the route to save the
57
55
  results to your attachment column.
58
56
 
57
+ The **[demo app]** shows a complete implementation of this flow, and can serve
58
+ as a good baseline for your own implementation.
59
+
59
60
  ## Usage
60
61
 
61
62
  Transloadit assemblies are built inside `#transloadit_process` method in your
@@ -209,6 +210,36 @@ response.reload!
209
210
  response.finished? #=> true
210
211
  ```
211
212
 
213
+ ### Direct uploads
214
+
215
+ Transloadit supports direct uploads, allowing you to do additional processing
216
+ on upload, along with a [jQuery plugin] for easy integration. Generally you
217
+ only want to do some light processing on direct uploads, and without any
218
+ exporting, so that you have better control over your Transloadit bandwidth.
219
+
220
+ When direct upload finishes, Transloadit returns information about the uploaded
221
+ files, including a temporary URL and useful metadata. You'll want to store both
222
+ to the database, URL you will need for additional processing after the record
223
+ is saved. This is the JavaScript needed to convert Transloadit's data hash into
224
+ Shrine's format:
225
+
226
+ ```js
227
+ {
228
+ id: data['url'], // we save the URL
229
+ storage: 'cache',
230
+ metadata: {
231
+ size: data['size'],
232
+ filename: data['name'],
233
+ mime_type: data['mime'],
234
+ width: data['meta'] && data['meta']['width'],
235
+ height: data['meta'] && data['meta']['height'],
236
+ transloadit: data['meta'],
237
+ }
238
+ }
239
+ ```
240
+
241
+ See the **[demo app]** for a complete implementation of direct uploads.
242
+
212
243
  ### Import & Export
213
244
 
214
245
  Every `TransloaditFile` needs to have an import and an export step. This plugin
@@ -335,7 +366,7 @@ $ bundle exec rake test
335
366
 
336
367
  ## License
337
368
 
338
- [MIT](LICENSE.txt)
369
+ [MIT](/LICENSE.txt)
339
370
 
340
371
  [Shrine]: https://github.com/janko-m/shrine
341
372
  [Transloadit]: https://transloadit.com/
@@ -343,3 +374,5 @@ $ bundle exec rake test
343
374
  [transloadit gem]: https://github.com/transloadit/ruby-sdk
344
375
  [robot and arguments]: https://transloadit.com/docs/conversion-robots/
345
376
  [templates]: https://transloadit.com/docs/#templates
377
+ [jQuery plugin]: https://github.com/transloadit/jquery-sdk
378
+ [demo app]: /demo
@@ -13,6 +13,7 @@ class Shrine
13
13
  raise Error, "The :auth_key is required for transloadit plugin" if uploader.opts[:transloadit_auth_key].nil?
14
14
  raise Error, "The :auth_secret is required for transloadit plugin" if uploader.opts[:transloadit_auth_secret].nil?
15
15
 
16
+ uploader.storages[:cache] ||= UrlStorage.new
16
17
  uploader.opts[:backgrounding_promote] ||= proc { transloadit_process }
17
18
  end
18
19
 
@@ -260,6 +261,12 @@ class Shrine
260
261
  @steps.any? && @steps.last.robot.end_with?("/store")
261
262
  end
262
263
  end
264
+
265
+ class UrlStorage
266
+ def url(id, **options)
267
+ id
268
+ end
269
+ end
263
270
  end
264
271
 
265
272
  register_plugin(:transloadit, Transloadit)
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |gem|
2
2
  gem.name = "shrine-transloadit"
3
- gem.version = "0.1.0"
3
+ gem.version = "0.1.1"
4
4
 
5
5
  gem.required_ruby_version = ">= 2.1"
6
6
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shrine-transloadit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Janko Marohnić
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-07-04 00:00:00.000000000 Z
11
+ date: 2016-07-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: shrine