blobsterix 0.0.9 → 0.0.10

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 5377ce878e40d72b97327de2e0164016c87d09ae
4
+ data.tar.gz: bb0e8f0e5beb71ab33092e119d8d579786ceda9c
5
+ SHA512:
6
+ metadata.gz: 5399a5373e515cee0546bfd946f59ba2eaa3a2d4ef6da42e3c8d6f47307c9aa00af86d9ffc45f10076620d71f670dc0b73b0abe1de9436b772c7dff4fb62e3f7
7
+ data.tar.gz: d72731cb475cb077adc0b45f8c36162c7b0ed0c9f8e04f6c91d0d9e81be8e5a610e4d4c1899c0d3f03c5b73c082c2dcff1c902d21196447fc48316f6df2ca60e
data/CHANGELOG.txt CHANGED
@@ -1,3 +1,7 @@
1
+ = 0.0.10
2
+ * Adding ruby dependency to gemfile
3
+ = 0.0.9
4
+ = 0.0.8
1
5
  = 0.0.7
2
6
  * now uses blobaccess to access all data in the transformation manager
3
7
  cache and storage are now hidden and are used in the background accordingly. allows the system to prevent unneeded caching
data/README.md CHANGED
@@ -1,15 +1,31 @@
1
1
  # Blobsterix
2
2
 
3
3
 
4
- # IMPORTANT
5
- Use at least ruby-2.0.0-p451 to ensure thread safety (reference: https://github.com/eventmachine/eventmachine/issues/457)
4
+ # What's this?
6
5
 
6
+ Blobsterix is a s3 compliant content server that supports on the fly transformations for its data.
7
+ Images for example can be scaled, rotated and so on before delivered to the client just by url modification.
8
+ The system also supports encryption of urls (so nobody can mess with the transformations) and transformation signing for the non s3 interface functions.
7
9
 
8
- Blobsterix is a s3 compliant content server that supports on the fly transformations for its data. Images for example can be scaled, rotated and so on before delivered to the client. The system also supports encryption and transformation signing for the non s3 interface functions. The s3 interface itself is unsecured and should not be visible to the outside.
10
+ So if you are tired of:
11
+ * days of migration just to introduce a new size of an image
12
+ * high bills for amazon's s3 as you also pay for the storage of all the versions of the transformed original
13
+ * lots of dependencies to modify binary files in your main app
14
+
15
+ and if you want:
16
+ * content negotiation for your images (webp or not to webp)
17
+ * on the fly transformation for your images and other binary formats with caching
18
+
19
+ Blobsterix might be your friend.
9
20
 
10
21
  # Install
11
22
 
12
- * Checkout the repository
23
+ Simply run
24
+
25
+ gem install blobsterix
26
+
27
+ This will install blobsterix with all its dependencies. IT requires at least ruby version 2.0.0-p451 (reference: https://github.com/eventmachine/eventmachine/issues/457).
28
+ Some binary dependencies are needed for the transformation pipeline not for the server itself. If you have your own transformations you might not need these:
13
29
 
14
30
  * Setup binary dependencies
15
31
  * Webp
@@ -18,27 +34,16 @@ Blobsterix is a s3 compliant content server that supports on the fly transformat
18
34
  - OR make sure you have a cwbep script that behaves the right way
19
35
  * MiniMagick
20
36
  sudo apt-get install imagemagick
21
- * VIPS(deprecated)
22
- sudo apt-get install libjpeg-dev libpng-dev libtiff-dev libvips-dev
23
37
  * lightpd config(not needed):
24
38
  sudo apt-get install libpcre3-dev libbz2-dev libglib2.0-dev
25
39
  * ASCII Art (optional)
26
40
  sudo apt-get install jp2a
27
41
 
28
- * Setup ruby
29
- - bundle install
30
-
31
42
  # Usage
32
43
 
33
- To install blobsterix simply do a:
34
-
35
- * gem install blobsterix
36
-
37
- This will install blobsterix with all its dependencies. After that you have to install the binary dependecies which are written above. Those are needed for the transformation pipeline not for the server itself. If you have your own transformations you might not need thoose.
38
-
39
44
  Now the server is basicly ready to run with
40
45
 
41
- * blobsterix server
46
+ blobsterix server
42
47
 
43
48
  This will run the server in the current directory which will create a contents and a cache folder uppon the first request that needs them. If this is enough you are basicly done and you can use the server. When you need more control over the server you will have to create a server configuration. For this process there are generators shipped with blobsterix.
44
49
 
@@ -70,6 +75,8 @@ Check the amazon s3 specs for more information. It only supports the REST api wi
70
75
  * put file into bucket
71
76
  * delete file from bucket
72
77
 
78
+ The s3 interface itself is unsecured and should not be visible to the outside.
79
+
73
80
  ## Blob interface
74
81
 
75
82
  The blob interface is reachable at
@@ -91,8 +98,8 @@ The trafo is optional the bucket and file are not. The blob interface does not a
91
98
 
92
99
  To setup a special server change into and empty directory:
93
100
 
94
- * mkdir special-blobsterix
95
- * blobsterix generate init special-blobsterix
101
+ mkdir special-blobsterix
102
+ blobsterix generate init special-blobsterix
96
103
 
97
104
  This will copy a base template into special-blobsterix. Now you can checkout the generated config files for documentation on how to change things.
98
105
 
@@ -100,7 +107,7 @@ This will copy a base template into special-blobsterix. Now you can checkout the
100
107
 
101
108
  The biggest strength of the system is it supports custom transformations without much coding required. To use a custom transformation you first have to setup a configuration as explained in the step before. Then you can use transformation generator to create a new transformation with
102
109
 
103
- * blobsterix generate transformator CropToFace
110
+ blobsterix generate transformator CropToFace
104
111
 
105
112
  This will generate a new transforamtion in the transformators subdirectory of your server configuration. The transformation has standard parameters set which already make the transformation work. There are five functions:
106
113
 
@@ -117,6 +124,6 @@ Now the 50 would be passed as value with type string. The transformation has to
117
124
 
118
125
  Blobsterix also supports different kinds of backend storages. For this purpose you can again use a generator to create template storage system with:
119
126
 
120
- * blobsterix generate storage MyBackend
127
+ blobsterix generate storage MyBackend
121
128
 
122
129
  This will again generate a working empty storage that doesn't allow saving or retriving of data. To see a working storage implementation checkout the FileSystem storage in the source code. Now you will see that all data there is returned as a BlobMetaData or better in the FileSystem storage as a FileSystemMetaData. As long as your implementation supports the interface everything should work like expected.
data/blobsterix.gemspec CHANGED
@@ -7,7 +7,7 @@ Gem::Specification.new do |gem|
7
7
  gem.email = ["suddani@googlemail.com"]
8
8
  gem.description = "BlobServer"
9
9
  gem.summary = "BlobServer"
10
- gem.homepage = "http://experteer.com"
10
+ gem.homepage = "https://github.com/experteer/blobsterix"
11
11
  gem.license = "MIT License"
12
12
 
13
13
  gem.files = `git ls-files`.split($\).select{|filename|
@@ -22,7 +22,8 @@ Gem::Specification.new do |gem|
22
22
  gem.name = "blobsterix"
23
23
  gem.require_paths = ["lib"]
24
24
  gem.version = Blobsterix::VERSION
25
-
25
+ gem.required_ruby_version = ">= 2.0.0.451"
26
+
26
27
 
27
28
  gem.add_dependency "json", "~> 1.8.1"
28
29
  gem.add_dependency "goliath", "~> 1.0.3"
@@ -1,3 +1,3 @@
1
1
  module Blobsterix
2
- VERSION = "0.0.9"
2
+ VERSION = "0.0.10"
3
3
  end
metadata CHANGED
@@ -1,199 +1,177 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: blobsterix
3
- version: !ruby/object:Gem::Version
4
- hash: 13
5
- prerelease:
6
- segments:
7
- - 0
8
- - 0
9
- - 9
10
- version: 0.0.9
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.10
11
5
  platform: ruby
12
- authors:
6
+ authors:
13
7
  - Daniel Sudmann
14
8
  autorequire:
15
9
  bindir: bin
16
10
  cert_chain: []
17
-
18
- date: 2014-04-10 00:00:00 +02:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
11
+ date: 2014-04-10 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
22
14
  name: json
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
27
17
  - - ~>
28
- - !ruby/object:Gem::Version
29
- hash: 53
30
- segments:
31
- - 1
32
- - 8
33
- - 1
18
+ - !ruby/object:Gem::Version
34
19
  version: 1.8.1
35
20
  type: :runtime
36
- version_requirements: *id001
37
- - !ruby/object:Gem::Dependency
38
- name: goliath
39
21
  prerelease: false
40
- requirement: &id002 !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: 1.8.1
27
+ - !ruby/object:Gem::Dependency
28
+ name: goliath
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
43
31
  - - ~>
44
- - !ruby/object:Gem::Version
45
- hash: 17
46
- segments:
47
- - 1
48
- - 0
49
- - 3
32
+ - !ruby/object:Gem::Version
50
33
  version: 1.0.3
51
34
  type: :runtime
52
- version_requirements: *id002
53
- - !ruby/object:Gem::Dependency
54
- name: journey
55
35
  prerelease: false
56
- requirement: &id003 !ruby/object:Gem::Requirement
57
- none: false
58
- requirements:
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: 1.0.3
41
+ - !ruby/object:Gem::Dependency
42
+ name: journey
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
59
45
  - - ~>
60
- - !ruby/object:Gem::Version
61
- hash: 31
62
- segments:
63
- - 1
64
- - 0
65
- - 4
46
+ - !ruby/object:Gem::Version
66
47
  version: 1.0.4
67
48
  type: :runtime
68
- version_requirements: *id003
69
- - !ruby/object:Gem::Dependency
70
- name: nokogiri
71
49
  prerelease: false
72
- requirement: &id004 !ruby/object:Gem::Requirement
73
- none: false
74
- requirements:
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 1.0.4
55
+ - !ruby/object:Gem::Dependency
56
+ name: nokogiri
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
75
59
  - - ~>
76
- - !ruby/object:Gem::Version
77
- hash: 13
78
- segments:
79
- - 1
80
- - 6
81
- - 1
60
+ - !ruby/object:Gem::Version
82
61
  version: 1.6.1
83
62
  type: :runtime
84
- version_requirements: *id004
85
- - !ruby/object:Gem::Dependency
86
- name: ruby-webp
87
63
  prerelease: false
88
- requirement: &id005 !ruby/object:Gem::Requirement
89
- none: false
90
- requirements:
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ~>
67
+ - !ruby/object:Gem::Version
68
+ version: 1.6.1
69
+ - !ruby/object:Gem::Dependency
70
+ name: ruby-webp
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
91
73
  - - ~>
92
- - !ruby/object:Gem::Version
93
- hash: 27
94
- segments:
95
- - 0
96
- - 1
97
- - 0
74
+ - !ruby/object:Gem::Version
98
75
  version: 0.1.0
99
76
  type: :runtime
100
- version_requirements: *id005
101
- - !ruby/object:Gem::Dependency
102
- name: mini_magick
103
77
  prerelease: false
104
- requirement: &id006 !ruby/object:Gem::Requirement
105
- none: false
106
- requirements:
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
107
80
  - - ~>
108
- - !ruby/object:Gem::Version
109
- hash: 19
110
- segments:
111
- - 3
112
- - 5
113
- - 0
81
+ - !ruby/object:Gem::Version
82
+ version: 0.1.0
83
+ - !ruby/object:Gem::Dependency
84
+ name: mini_magick
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ~>
88
+ - !ruby/object:Gem::Version
114
89
  version: 3.5.0
115
90
  type: :runtime
116
- version_requirements: *id006
117
- - !ruby/object:Gem::Dependency
118
- name: rspec
119
91
  prerelease: false
120
- requirement: &id007 !ruby/object:Gem::Requirement
121
- none: false
122
- requirements:
123
- - - ">="
124
- - !ruby/object:Gem::Version
125
- hash: 3
126
- segments:
127
- - 0
128
- version: "0"
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ~>
95
+ - !ruby/object:Gem::Version
96
+ version: 3.5.0
97
+ - !ruby/object:Gem::Dependency
98
+ name: rspec
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
129
104
  type: :development
130
- version_requirements: *id007
131
- - !ruby/object:Gem::Dependency
132
- name: rspec-core
133
105
  prerelease: false
134
- requirement: &id008 !ruby/object:Gem::Requirement
135
- none: false
136
- requirements:
137
- - - ">="
138
- - !ruby/object:Gem::Version
139
- hash: 3
140
- segments:
141
- - 0
142
- version: "0"
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: rspec-core
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
143
118
  type: :development
144
- version_requirements: *id008
145
- - !ruby/object:Gem::Dependency
146
- name: rspec-expectations
147
119
  prerelease: false
148
- requirement: &id009 !ruby/object:Gem::Requirement
149
- none: false
150
- requirements:
151
- - - ">="
152
- - !ruby/object:Gem::Version
153
- hash: 3
154
- segments:
155
- - 0
156
- version: "0"
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '>='
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: rspec-expectations
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - '>='
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
157
132
  type: :development
158
- version_requirements: *id009
159
- - !ruby/object:Gem::Dependency
160
- name: rspec-mocks
161
133
  prerelease: false
162
- requirement: &id010 !ruby/object:Gem::Requirement
163
- none: false
164
- requirements:
165
- - - ">="
166
- - !ruby/object:Gem::Version
167
- hash: 3
168
- segments:
169
- - 0
170
- version: "0"
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - '>='
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: rspec-mocks
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - '>='
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
171
146
  type: :development
172
- version_requirements: *id010
173
- - !ruby/object:Gem::Dependency
174
- name: pry
175
147
  prerelease: false
176
- requirement: &id011 !ruby/object:Gem::Requirement
177
- none: false
178
- requirements:
179
- - - ">="
180
- - !ruby/object:Gem::Version
181
- hash: 3
182
- segments:
183
- - 0
184
- version: "0"
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - '>='
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: pry
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - '>='
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
185
160
  type: :development
186
- version_requirements: *id011
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - '>='
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
187
167
  description: BlobServer
188
- email:
168
+ email:
189
169
  - suddani@googlemail.com
190
- executables:
170
+ executables:
191
171
  - blobsterix
192
172
  extensions: []
193
-
194
173
  extra_rdoc_files: []
195
-
196
- files:
174
+ files:
197
175
  - .gitignore
198
176
  - CHANGELOG.txt
199
177
  - Gemfile
@@ -276,45 +254,31 @@ files:
276
254
  - templates/transformation_template.rb
277
255
  - templates/views/error_page.erb
278
256
  - templates/views/status_page.erb
279
- has_rdoc: true
280
- homepage: http://experteer.com
281
- licenses:
257
+ homepage: https://github.com/experteer/blobsterix
258
+ licenses:
282
259
  - MIT License
260
+ metadata: {}
283
261
  post_install_message:
284
262
  rdoc_options: []
285
-
286
- require_paths:
263
+ require_paths:
287
264
  - lib
288
- required_ruby_version: !ruby/object:Gem::Requirement
289
- none: false
290
- requirements:
291
- - - ">="
292
- - !ruby/object:Gem::Version
293
- hash: -3603376774
294
- segments:
295
- - 2
296
- - 0
297
- - 0
298
- - p
299
- - 451
300
- version: 2.0.0.p451
301
- required_rubygems_version: !ruby/object:Gem::Requirement
302
- none: false
303
- requirements:
304
- - - ">="
305
- - !ruby/object:Gem::Version
306
- hash: 3
307
- segments:
308
- - 0
309
- version: "0"
265
+ required_ruby_version: !ruby/object:Gem::Requirement
266
+ requirements:
267
+ - - '>='
268
+ - !ruby/object:Gem::Version
269
+ version: 2.0.0.451
270
+ required_rubygems_version: !ruby/object:Gem::Requirement
271
+ requirements:
272
+ - - '>='
273
+ - !ruby/object:Gem::Version
274
+ version: '0'
310
275
  requirements: []
311
-
312
276
  rubyforge_project:
313
- rubygems_version: 1.5.3
277
+ rubygems_version: 2.0.14
314
278
  signing_key:
315
- specification_version: 3
279
+ specification_version: 4
316
280
  summary: BlobServer
317
- test_files:
281
+ test_files:
318
282
  - spec/lib/blob/blob_api_spec.rb
319
283
  - spec/lib/helper/blob_access_spec.rb
320
284
  - spec/lib/s3/s3_api_spec.rb