ahoward-helene 0.0.3

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.
Files changed (72) hide show
  1. data/Rakefile +274 -0
  2. data/helene.gemspec +26 -0
  3. data/lib/helene.rb +113 -0
  4. data/lib/helene/attempt.rb +46 -0
  5. data/lib/helene/aws.rb +50 -0
  6. data/lib/helene/config.rb +147 -0
  7. data/lib/helene/content_type.rb +15 -0
  8. data/lib/helene/content_type.yml +661 -0
  9. data/lib/helene/error.rb +12 -0
  10. data/lib/helene/logging.rb +55 -0
  11. data/lib/helene/objectpool.rb +220 -0
  12. data/lib/helene/rails.rb +21 -0
  13. data/lib/helene/rightscale/acf/right_acf_interface.rb +379 -0
  14. data/lib/helene/rightscale/awsbase/benchmark_fix.rb +39 -0
  15. data/lib/helene/rightscale/awsbase/right_awsbase.rb +803 -0
  16. data/lib/helene/rightscale/awsbase/support.rb +111 -0
  17. data/lib/helene/rightscale/ec2/right_ec2.rb +1737 -0
  18. data/lib/helene/rightscale/net_fix.rb +160 -0
  19. data/lib/helene/rightscale/right_aws.rb +71 -0
  20. data/lib/helene/rightscale/right_http_connection.rb +507 -0
  21. data/lib/helene/rightscale/s3/right_s3.rb +1094 -0
  22. data/lib/helene/rightscale/s3/right_s3_interface.rb +1180 -0
  23. data/lib/helene/rightscale/sdb/active_sdb.rb +930 -0
  24. data/lib/helene/rightscale/sdb/right_sdb_interface.rb +696 -0
  25. data/lib/helene/rightscale/sqs/right_sqs.rb +388 -0
  26. data/lib/helene/rightscale/sqs/right_sqs_gen2.rb +286 -0
  27. data/lib/helene/rightscale/sqs/right_sqs_gen2_interface.rb +444 -0
  28. data/lib/helene/rightscale/sqs/right_sqs_interface.rb +596 -0
  29. data/lib/helene/s3.rb +34 -0
  30. data/lib/helene/s3/bucket.rb +379 -0
  31. data/lib/helene/s3/grantee.rb +134 -0
  32. data/lib/helene/s3/key.rb +162 -0
  33. data/lib/helene/s3/owner.rb +16 -0
  34. data/lib/helene/sdb.rb +9 -0
  35. data/lib/helene/sdb/base.rb +1204 -0
  36. data/lib/helene/sdb/base/associations.rb +481 -0
  37. data/lib/helene/sdb/base/attributes.rb +90 -0
  38. data/lib/helene/sdb/base/connection.rb +20 -0
  39. data/lib/helene/sdb/base/error.rb +20 -0
  40. data/lib/helene/sdb/base/hooks.rb +82 -0
  41. data/lib/helene/sdb/base/literal.rb +52 -0
  42. data/lib/helene/sdb/base/logging.rb +23 -0
  43. data/lib/helene/sdb/base/transactions.rb +53 -0
  44. data/lib/helene/sdb/base/type.rb +137 -0
  45. data/lib/helene/sdb/base/types.rb +123 -0
  46. data/lib/helene/sdb/base/validations.rb +256 -0
  47. data/lib/helene/sdb/cast.rb +114 -0
  48. data/lib/helene/sdb/connection.rb +36 -0
  49. data/lib/helene/sdb/error.rb +5 -0
  50. data/lib/helene/sdb/interface.rb +412 -0
  51. data/lib/helene/sdb/sentinel.rb +15 -0
  52. data/lib/helene/sleepcycle.rb +29 -0
  53. data/lib/helene/superhash.rb +297 -0
  54. data/lib/helene/util.rb +132 -0
  55. data/test/auth.rb +31 -0
  56. data/test/helper.rb +98 -0
  57. data/test/integration/begin.rb +0 -0
  58. data/test/integration/ensure.rb +8 -0
  59. data/test/integration/s3/bucket.rb +106 -0
  60. data/test/integration/sdb/associations.rb +45 -0
  61. data/test/integration/sdb/creating.rb +13 -0
  62. data/test/integration/sdb/emptiness.rb +56 -0
  63. data/test/integration/sdb/hooks.rb +19 -0
  64. data/test/integration/sdb/limits.rb +27 -0
  65. data/test/integration/sdb/saving.rb +21 -0
  66. data/test/integration/sdb/selecting.rb +39 -0
  67. data/test/integration/sdb/types.rb +31 -0
  68. data/test/integration/sdb/validations.rb +60 -0
  69. data/test/integration/setup.rb +27 -0
  70. data/test/integration/teardown.rb +21 -0
  71. data/test/loader.rb +39 -0
  72. metadata +139 -0
@@ -0,0 +1,50 @@
1
+ module Helene
2
+ class << Helene
3
+ def aws_access_key_id(*value)
4
+ self.aws_access_key_id = value.first unless value.empty?
5
+
6
+ @aws_access_key_id ||= (
7
+ candidates = %w[ AWS_ACCESS_KEY_ID AMAZON_ACCESS_KEY_ID ACCESS_KEY_ID ]
8
+ candidates.each do |candidate|
9
+ return Object.const_get(candidate) if Object.const_defined?(candidate)
10
+ end
11
+ candidates.each do |candidate|
12
+ return ENV[candidate] if ENV[candidate]
13
+ end
14
+ raise Error, 'no configured aws_access_key_id'
15
+ )
16
+ end
17
+ attr_writer :aws_access_key_id
18
+
19
+ def aws_secret_access_key(*value)
20
+ self.aws_secret_access_key = value.first unless value.empty?
21
+
22
+ @aws_secret_access_key ||= (
23
+ candidates = %w[ AWS_SECRET_ACCESS_KEY AMAZON_SECRET_ACCESS_KEY SECRET_ACCESS_KEY ]
24
+ candidates.each do |candidate|
25
+ return Object.const_get(candidate) if Object.const_defined?(candidate)
26
+ end
27
+ candidates.each do |candidate|
28
+ return ENV[candidate] if ENV[candidate]
29
+ end
30
+ raise Error, 'no configured aws_secret_access_key'
31
+ )
32
+ end
33
+ attr_writer :aws_secret_access_key
34
+
35
+ def aws_ca_file(*value)
36
+ self.aws_ca_file = value.first unless value.empty?
37
+
38
+ @aws_ca_file ||= (
39
+ candidates = %w[ AWS_CA_FILE AMAZON_CA_FILE CA_FILE ]
40
+ candidates.each do |candidate|
41
+ return Object.const_get(candidate) if Object.const_defined?(candidate)
42
+ end
43
+ candidates.each do |candidate|
44
+ return ENV[candidate] if ENV[candidate]
45
+ end
46
+ )
47
+ end
48
+ attr_writer :aws_ca_file
49
+ end
50
+ end
@@ -0,0 +1,147 @@
1
+ module Helene
2
+ class Config
3
+ def Config.for(arg)
4
+ config = new
5
+ updates =
6
+ case arg
7
+ when Hash
8
+ arg
9
+ when NilClass
10
+ {}
11
+ else
12
+ if arg.respond_to?(:read)
13
+ YAML.load(arg.read)
14
+ else
15
+ YAML.load(IO.read(arg.to_s))
16
+ end
17
+ end
18
+ config.update(updates)
19
+ config
20
+ end
21
+
22
+ def Config.default_path
23
+ File.join(Helene::Util.homedir, '.helene.yml')
24
+ end
25
+
26
+ def Config.default
27
+ @default ||= (
28
+ update_from_env(
29
+ begin
30
+ Config.for(default_path)
31
+ rescue Errno::ENOENT
32
+ Config.for(nil)
33
+ end
34
+ )
35
+ )
36
+ end
37
+
38
+ def Config.update_from_env config
39
+ =begin
40
+ username = ENV['GNIP_USERNAME']
41
+ password = ENV['GNIP_PASSWORD']
42
+ auth = ENV['GNIP_AUTH']
43
+ if(auth and not (username and password))
44
+ username, password = auth.split(%r/:/, 2)
45
+ end
46
+ uri = ENV['GNIP_URI'] || Helene.default.uri
47
+ config.username = username if username
48
+ config.password = password if password
49
+ config.uri = uri if uri
50
+ config
51
+ =end
52
+ end
53
+
54
+ def Config.normalized hash
55
+ stringified_keys(hash)
56
+ end
57
+
58
+ def Config.stringified_keys hash
59
+ hash.keys.inject(Hash.new){|h,k| h.update(k.to_s => hash.fetch(k))}
60
+ end
61
+
62
+ attr :config
63
+
64
+ def initialize options = {}
65
+ @config = {}
66
+ options.each do |key, value|
67
+ msg = "#{ key }="
68
+ if respond_to?(msg)
69
+ send msg, value
70
+ else
71
+ @config[key.to_s] = value
72
+ end
73
+ end
74
+ end
75
+
76
+ alias_method 'to_hash', 'config'
77
+
78
+ def to_yaml(*args, &block)
79
+ to_hash.to_yaml(*args, &block)
80
+ end
81
+
82
+ def username= username
83
+ config['username'] = username.to_s
84
+ end
85
+ def username
86
+ config['username'].to_s
87
+ end
88
+
89
+ def password= password
90
+ config['password'] = password.to_s
91
+ end
92
+ def password
93
+ config['password'].to_s
94
+ end
95
+
96
+ def uri= uri
97
+ config['uri'] = uri.to_s
98
+ end
99
+ def uri
100
+ URI.parse(config['uri'].to_s) if config['uri']
101
+ end
102
+
103
+ def inspect
104
+ config.inspect
105
+ end
106
+
107
+ def normalize!
108
+ config.replace normalized
109
+ end
110
+
111
+ def normalized hash = config
112
+ Config.normalized(hash)
113
+ end
114
+
115
+ def [] key
116
+ config[key.to_s]
117
+ end
118
+ alias_method 'get', '[]'
119
+
120
+ def []= key, val
121
+ config[key.to_s] = val
122
+ end
123
+ alias_method 'set', '[]='
124
+
125
+ def has_key? key
126
+ config.has_key? key.to_s
127
+ end
128
+
129
+ def update hash
130
+ config.update normalized(hash)
131
+ self
132
+ end
133
+
134
+ def method_missing m, *a, &b
135
+ key, setter = m.to_s.split(/(=)/)
136
+ if setter
137
+ val = a.first
138
+ return(set(key, val))
139
+ end
140
+ if has_key?(key)
141
+ return(get(key))
142
+ end
143
+ super
144
+ end
145
+ end
146
+ end
147
+
@@ -0,0 +1,15 @@
1
+ module Helene
2
+ module ContentType
3
+ unless defined?(@config)
4
+ @config = File.join(File.dirname(__FILE__), 'content_type.yml')
5
+ @table = YAML.load(IO.read(@config))
6
+ end
7
+
8
+ def for(ext)
9
+ @table[ext] || @table[ext.split(%r/[.]/).last.strip.downcase]
10
+ end
11
+ alias_method '[]', 'for'
12
+
13
+ extend self
14
+ end
15
+ end
@@ -0,0 +1,661 @@
1
+ ---
2
+ mny: application/x-msmoney
3
+ rs: application/rls-services+xml
4
+ sbml: application/sbml+xml
5
+ sus: application/vnd.sus-calendar
6
+ mxs: application/vnd.triscape.mxs
7
+ ecelp7470: audio/vnd.nuera.ecelp7470
8
+ hpid: application/vnd.hp-hpid
9
+ mxu: video/vnd.mpegurl
10
+ cxx: text/x-c
11
+ pnm: image/x-portable-anymap
12
+ wspolicy: application/wspolicy+xml
13
+ lzh: application/octet-stream
14
+ sema: application/vnd.sema
15
+ iif: application/vnd.shana.informed.interchange
16
+ ktz: application/vnd.kahootz
17
+ djv: image/vnd.djvu
18
+ rmp: audio/x-pn-realaudio-plugin
19
+ mxml: application/xv+xml
20
+ mbk: application/vnd.mobius.mbk
21
+ "123": application/vnd.lotus-1-2-3
22
+ ami: application/vnd.amiga.ami
23
+ g3: image/g3fax
24
+ zip: application/zip
25
+ xhvml: application/xv+xml
26
+ semd: application/vnd.semd
27
+ jlt: application/vnd.hp-jlyt
28
+ dot: application/msword
29
+ ai: application/postscript
30
+ uris: text/uri-list
31
+ pntg: image/x-macpaint
32
+ cgm: image/cgm
33
+ snd: audio/basic
34
+ mvb: application/x-msmediaview
35
+ sig: application/pgp-signature
36
+ utz: application/vnd.uiq.theme
37
+ csml: chemical/x-csml
38
+ xop: application/xop+xml
39
+ semf: application/vnd.semf
40
+ rms: application/vnd.jcp.javame.midlet-rms
41
+ pnt: image/x-macpaint
42
+ fst: image/vnd.fst
43
+ kwd: application/vnd.kde.kword
44
+ java: text/x-java-source
45
+ f90: text/x-fortran
46
+ wqd: application/vnd.wqd
47
+ dd2: application/vnd.oma.dd2+xml
48
+ mesh: model/mesh
49
+ ccxml: application/ccxml+xml
50
+ fgd: application/x-director
51
+ pbd: application/vnd.powerbuilder6
52
+ kml: application/vnd.google-earth.kml+xml
53
+ ssf: application/vnd.epson.ssf
54
+ acu: application/vnd.acucobol
55
+ clp: application/x-msclip
56
+ atom: application/atom+xml
57
+ fm: application/vnd.framemaker
58
+ sdp: application/sdp
59
+ umj: application/vnd.umajin
60
+ smil: application/smil+xml
61
+ oas: application/vnd.fujitsu.oasys
62
+ uri: text/uri-list
63
+ qti: image/x-quicktime
64
+ m3u: audio/x-mpegurl
65
+ mlp: application/vnd.dolby.mlp
66
+ plb: application/vnd.3gpp.pic-bw-large
67
+ gtm: application/vnd.groove-tool-message
68
+ plc: application/vnd.mobius.plc
69
+ wbs: application/vnd.criticaltools.wbs+xml
70
+ setreg: application/set-registration-initiation
71
+ dmg: application/octet-stream
72
+ djvu: image/vnd.djvu
73
+ au: audio/basic
74
+ bdm: application/vnd.syncml.dm+wbxml
75
+ iso: application/octet-stream
76
+ pqa: application/vnd.palm
77
+ mpeg: video/mpeg
78
+ jp2: image/jp2
79
+ eps: application/postscript
80
+ fli: video/x-fli
81
+ sit: application/x-stuffit
82
+ plf: application/vnd.pocketlearn
83
+ pbm: image/x-portable-bitmap
84
+ cmdf: chemical/x-cmdf
85
+ ram: audio/x-pn-realaudio
86
+ pvb: application/vnd.3gpp.pic-bw-var
87
+ dwf: model/vnd.dwf
88
+ bin: application/octet-stream
89
+ dwg: image/vnd.dwg
90
+ xenc: application/xenc+xml
91
+ oda: application/oda
92
+ dcr: application/x-director
93
+ pgm: image/x-portable-graymap
94
+ fbs: image/vnd.fastbidsheet
95
+ xyz: chemical/x-xyz
96
+ vsd: application/vnd.visio
97
+ class: application/octet-stream
98
+ mgz: application/vnd.proteus.magazine
99
+ dump: application/octet-stream
100
+ list: text/plain
101
+ odc: application/vnd.oasis.opendocument.chart
102
+ wmlc: application/vnd.wap.wmlc
103
+ ps: application/postscript
104
+ pgn: application/x-chess-pgn
105
+ gtw: model/vnd.gtw
106
+ nml: application/vnd.enliven
107
+ kwt: application/vnd.kde.kword
108
+ vsf: application/vnd.vsf
109
+ flo: application/vnd.micrografx.flo
110
+ kmz: application/vnd.google-earth.kmz
111
+ xwd: image/x-xwindowdump
112
+ rar: application/x-rar-compressed
113
+ pgp: application/pgp-encrypted
114
+ bcpio: application/x-bcpio
115
+ ras: image/x-cmu-raster
116
+ odf: application/vnd.oasis.opendocument.formula
117
+ ghf: application/vnd.groove-help
118
+ mqy: application/vnd.mobius.mqy
119
+ dist: application/octet-stream
120
+ xml: application/xml
121
+ texi: application/x-texinfo
122
+ ufd: application/vnd.ufdl
123
+ odg: application/vnd.oasis.opendocument.graphics
124
+ uu: text/x-uuencode
125
+ dms: application/octet-stream
126
+ grxml: application/srgs+xml
127
+ odi: application/vnd.oasis.opendocument.image
128
+ nb: application/mathematica
129
+ torrent: application/x-bittorrent
130
+ edm: application/vnd.novadigm.edm
131
+ wsdl: application/wsdl+xml
132
+ wvx: video/x-ms-wvx
133
+ mp2: audio/mpeg
134
+ nc: application/x-netcdf
135
+ hps: application/vnd.hp-hps
136
+ esf: application/vnd.epson.esf
137
+ setpay: application/set-payment-initiation
138
+ frame: application/vnd.framemaker
139
+ pls: application/pls+xml
140
+ mp3: audio/mpeg
141
+ igl: application/vnd.igloader
142
+ et3: application/vnd.eszigno3+xml
143
+ hpgl: application/vnd.hp-hpgl
144
+ flw: application/vnd.kde.kivio
145
+ vis: application/vnd.visionary
146
+ mp4: video/mp4
147
+ flx: text/vnd.fmi.flexstor
148
+ urls: text/uri-list
149
+ xht: application/xhtml+xml
150
+ exe: application/x-msdownload
151
+ afp: application/vnd.ibm.modcap
152
+ fly: text/vnd.fly
153
+ tex: application/x-tex
154
+ daf: application/vnd.mobius.daf
155
+ wtb: application/vnd.webturbo
156
+ sc: application/vnd.ibm.secure-container
157
+ viv: video/vnd.vivo
158
+ fvt: video/vnd.fvt
159
+ mp4a: audio/mp4
160
+ kar: audio/midi
161
+ jnlp: application/x-java-jnlp-file
162
+ qwd: application/vnd.quark.quarkxpress
163
+ cer: application/pkix-cert
164
+ lbd: application/vnd.llamagraphics.life-balance.desktop
165
+ kfo: application/vnd.kde.kformula
166
+ sgm: text/sgml
167
+ com: application/x-msdownload
168
+ svd: application/vnd.svd
169
+ lbe: application/vnd.llamagraphics.life-balance.exchange+xml
170
+ bh2: application/vnd.fujitsu.oasysprs
171
+ odp: application/vnd.oasis.opendocument.presentation
172
+ unityweb: application/vnd.unity
173
+ hdf: application/x-hdf
174
+ vss: application/vnd.visio
175
+ n-gage: application/vnd.nokia.n-gage.symbian.install
176
+ ecma: application/ecmascript
177
+ text: text/plain
178
+ acutc: application/vnd.acucorp
179
+ atomcat: application/atomcat+xml
180
+ vst: application/vnd.visio
181
+ m1v: video/mpeg
182
+ wmls: text/vnd.wap.wmlscript
183
+ igs: model/iges
184
+ svg: image/svg+xml
185
+ sh: application/x-sh
186
+ dp: application/vnd.osgi.dp
187
+ ods: application/vnd.oasis.opendocument.spreadsheet
188
+ h261: video/h261
189
+ in: text/plain
190
+ odt: application/vnd.oasis.opendocument.text
191
+ rdf: application/rdf+xml
192
+ f77: text/x-fortran
193
+ clkk: application/vnd.crick.clicker.keyboard
194
+ edx: application/vnd.novadigm.edx
195
+ fe_launch: application/vnd.denovo.fcselayout-link
196
+ mseq: application/vnd.mseq
197
+ apr: application/vnd.lotus-approach
198
+ vsw: application/vnd.visio
199
+ h263: video/h263
200
+ xslt: application/xslt+xml
201
+ ftc: application/vnd.fluxtime.clip
202
+ h264: video/h264
203
+ rnc: application/relax-ng-compact-syntax
204
+ rif: application/reginfo+xml
205
+ dpg: application/vnd.dpgraph
206
+ 3gp: video/3gpp
207
+ kpr: application/vnd.kde.kpresenter
208
+ tra: application/vnd.trueapp
209
+ igx: application/vnd.micrografx.igx
210
+ dv: video/x-dv
211
+ m4a: audio/mp4a-latm
212
+ cpio: application/x-cpio
213
+ c4d: application/vnd.clonk.c4group
214
+ ivp: application/vnd.immervision-ivp
215
+ gac: application/vnd.groove-account
216
+ tcl: application/x-tcl
217
+ clkp: application/vnd.crick.clicker.palette
218
+ so: application/octet-stream
219
+ wbxml: application/vnd.wap.wbxml
220
+ slt: application/vnd.epson.salt
221
+ kpt: application/vnd.kde.kpresenter
222
+ c4f: application/vnd.clonk.c4group
223
+ rsd: application/rsd+xml
224
+ movie: video/x-sgi-movie
225
+ mov: video/quicktime
226
+ mts: model/vnd.mts
227
+ grv: application/vnd.groove-injector
228
+ fti: application/vnd.anser-web-funds-transfer-initiation
229
+ c4g: application/vnd.clonk.c4group
230
+ obd: application/x-msbinder
231
+ kia: application/vnd.kidspiration
232
+ mcd: application/vnd.mcd
233
+ ext: application/vnd.novadigm.ext
234
+ xo: application/vnd.olpc-sugar
235
+ aif: audio/x-aiff
236
+ clkt: application/vnd.crick.clicker.template
237
+ elc: application/octet-stream
238
+ cmc: application/vnd.cosmocaller
239
+ twd: application/vnd.simtech-mindmapper
240
+ ivu: application/vnd.immervision-ivu
241
+ ief: image/ief
242
+ btif: image/prs.btif
243
+ shar: application/x-shar
244
+ qwt: application/vnd.quark.quarkxpress
245
+ oxt: application/vnd.openofficeorg.extension
246
+ texinfo: application/x-texinfo
247
+ sv4cpio: application/x-sv4cpio
248
+ clkw: application/vnd.crick.clicker.wordbank
249
+ xar: application/vnd.xara
250
+ chrt: application/vnd.kde.kchart
251
+ asc: application/pgp-signature
252
+ see: application/vnd.seemail
253
+ crd: application/x-mscardfile
254
+ clkx: application/vnd.crick.clicker
255
+ mp4s: application/mp4
256
+ for: text/x-fortran
257
+ wma: audio/x-ms-wma
258
+ mmd: application/vnd.chipnuts.karaoke-mmd
259
+ tmo: application/vnd.tmobile-livetv
260
+ ogg: application/ogg
261
+ mime: message/rfc822
262
+ xpm: image/x-xpixmap
263
+ trm: application/x-msterminal
264
+ mrc: application/marc
265
+ kne: application/vnd.kinar
266
+ wmlsc: application/vnd.wap.wmlscriptc
267
+ asf: video/x-ms-asf
268
+ mp4v: video/mp4
269
+ c4p: application/vnd.clonk.c4group
270
+ gram: application/srgs
271
+ mmf: application/vnd.smaf
272
+ roff: text/troff
273
+ wmd: application/x-ms-wmd
274
+ xul: application/vnd.mozilla.xul+xml
275
+ msty: application/vnd.muvee.style
276
+ qam: application/vnd.epson.quickanime
277
+ chm: application/vnd.ms-htmlhelp
278
+ portpkg: application/vnd.macports.portpkg
279
+ gph: application/vnd.flographit
280
+ lvp: audio/vnd.lucent.voice
281
+ jad: text/vnd.sun.j2me.app-descriptor
282
+ cml: chemical/x-cml
283
+ mp2a: audio/mpeg
284
+ wmf: application/x-msmetafile
285
+ pot: application/vnd.ms-powerpoint
286
+ ddd: application/vnd.fujixerox.ddd
287
+ dic: text/x-c
288
+ m4p: audio/mp4a-latm
289
+ xpr: application/vnd.is-xpr
290
+ rdz: application/vnd.data-vision.rdz
291
+ mbox: application/mbox
292
+ vrml: model/vrml
293
+ dna: application/vnd.dna
294
+ curl: application/vnd.curl
295
+ xps: application/vnd.ms-xpsdocument
296
+ rss: application/rss+xml
297
+ ngdat: application/vnd.nokia.n-gage.data
298
+ crl: application/pkix-crl
299
+ mwf: application/vnd.mfer
300
+ wcm: application/vnd.ms-works
301
+ asm: text/x-asm
302
+ html: text/html
303
+ c4u: application/vnd.clonk.c4group
304
+ stf: application/vnd.wt.stf
305
+ rgb: image/x-rgb
306
+ qtif: image/x-quicktime
307
+ npx: image/vnd.net-fpx
308
+ uoml: application/vnd.uoml+xml
309
+ cmp: application/vnd.yellowriver-custom-menu
310
+ dif: video/x-dv
311
+ sgml: text/sgml
312
+ aso: application/vnd.accpac.simply.aso
313
+ m4u: video/vnd.mpegurl
314
+ wml: text/vnd.wap.wml
315
+ wri: application/x-mswrite
316
+ xpw: application/vnd.intercon.formnet
317
+ rpss: application/vnd.nokia.radio-presets
318
+ m4v: video/mp4
319
+ dsc: text/prs.lines.tag
320
+ latex: application/x-latex
321
+ rpst: application/vnd.nokia.radio-preset
322
+ knp: application/vnd.kinar
323
+ silo: model/mesh
324
+ rlc: image/vnd.fujixerox.edmics-rlc
325
+ xpx: application/vnd.intercon.formnet
326
+ stk: application/hyperstudio
327
+ sdkd: application/vnd.solent.sdkm+xml
328
+ wrl: model/vrml
329
+ mmr: image/vnd.fujixerox.edmics-mmr
330
+ jpe: image/jpeg
331
+ cab: application/vnd.ms-cab-compressed
332
+ chat: application/x-chat
333
+ nnd: application/vnd.noblenet-directory
334
+ ufdl: application/vnd.ufdl
335
+ jam: application/vnd.jam
336
+ mpg4: video/mp4
337
+ m2a: audio/mpeg
338
+ itp: application/vnd.shana.informed.formtemplate
339
+ list3820: application/vnd.ibm.modcap
340
+ ksp: application/vnd.kde.kspread
341
+ xif: image/vnd.xiff
342
+ crt: application/x-x509-ca-cert
343
+ prc: application/vnd.palm
344
+ hvd: application/vnd.yamaha.hv-dic
345
+ pcl: application/vnd.hp-pcl
346
+ log: text/plain
347
+ cmx: image/x-cmx
348
+ jpg: image/jpeg
349
+ bz2: application/x-bzip2
350
+ mpkg: application/vnd.apple.installer+xml
351
+ tcap: application/vnd.3gpp2.tcap
352
+ mac: image/x-macpaint
353
+ dxf: image/vnd.dxf
354
+ pre: application/vnd.lotus-freelance
355
+ ltf: application/vnd.frogans.ltf
356
+ qfx: application/vnd.intu.qfx
357
+ qps: application/vnd.publishare-delta-tree
358
+ prf: application/pics-rules
359
+ nsf: application/vnd.lotus-notes
360
+ bz: application/x-bzip
361
+ ice: x-conference/x-cooltalk
362
+ asx: video/x-ms-asf
363
+ tao: application/vnd.tao.intent-module-archive
364
+ str: application/vnd.pg.format
365
+ jisp: application/vnd.jisp
366
+ xdm: application/vnd.syncml.dm+xml
367
+ oa2: application/vnd.fujitsu.oasys2
368
+ wmv: video/x-ms-wmv
369
+ qt: video/quicktime
370
+ scd: application/x-msschedule
371
+ cww: application/prs.cww
372
+ dir: application/x-director
373
+ pml: application/vnd.ctc-posml
374
+ sdkm: application/vnd.solent.sdkm+xml
375
+ mag: application/vnd.ecowin.chart
376
+ oa3: application/vnd.fujitsu.oasys3
377
+ pkipath: application/pkix-pkipath
378
+ jpm: video/jpm
379
+ conf: text/plain
380
+ tar: application/x-tar
381
+ les: application/vnd.hhe.lesson-player
382
+ dis: application/vnd.mobius.dis
383
+ hlp: application/winhlp
384
+ wmx: video/x-ms-wmx
385
+ gif: image/gif
386
+ xdp: application/vnd.adobe.xdp+xml
387
+ pct: image/x-pict
388
+ ecelp4800: audio/vnd.nuera.ecelp4800
389
+ tpl: application/vnd.groove-tool-template
390
+ wmz: application/x-ms-wmz
391
+ htke: application/vnd.kenameaapp
392
+ zmm: application/vnd.handheld-entertainment+xml
393
+ joda: application/vnd.joost.joda-archive
394
+ jpgm: video/jpm
395
+ gdl: model/vnd.gdl
396
+ xhtml: application/xhtml+xml
397
+ listafp: application/vnd.ibm.modcap
398
+ mpc: application/vnd.mophun.certificate
399
+ shf: application/shf+xml
400
+ xsl: application/xml
401
+ dxp: application/vnd.spotfire.dxp
402
+ mpe: video/mpeg
403
+ man: text/troff
404
+ pcx: image/x-pcx
405
+ aifc: audio/x-aiff
406
+ hvp: application/vnd.yamaha.hv-voice
407
+ otc: application/vnd.oasis.opendocument.chart-template
408
+ nns: application/vnd.noblenet-sealer
409
+ xsm: application/vnd.syncml+xml
410
+ ico: image/x-icon
411
+ src: application/x-wais-source
412
+ dxr: application/x-director
413
+ pwn: application/vnd.3m.post-it-notes
414
+ mpg: video/mpeg
415
+ scm: application/vnd.lotus-screencam
416
+ mfm: application/vnd.mfmp
417
+ ez2: application/vnd.ezpix-album
418
+ gim: application/vnd.groove-identity-message
419
+ xdw: application/vnd.fujixerox.docuworks
420
+ qxb: application/vnd.quark.quarkxpress
421
+ box: application/vnd.previewsystems.box
422
+ wpd: application/vnd.wordperfect
423
+ avi: video/x-msvideo
424
+ aiff: audio/x-aiff
425
+ ez3: application/vnd.ezpix-package
426
+ hvs: application/vnd.yamaha.hv-script
427
+ eol: audio/vnd.digital-winds
428
+ p7b: application/x-pkcs7-certificates
429
+ otf: application/vnd.oasis.opendocument.formula-template
430
+ nnw: application/vnd.noblenet-web
431
+ smi: application/smil+xml
432
+ lha: application/octet-stream
433
+ qxd: application/vnd.quark.quarkxpress
434
+ tpt: application/vnd.trid.tpt
435
+ boz: application/x-bzip2
436
+ ics: text/calendar
437
+ otg: application/vnd.oasis.opendocument.graphics-template
438
+ cdkey: application/vnd.mediastation.cdkey
439
+ hqx: application/mac-binhex40
440
+ dfac: application/vnd.dreamfactory
441
+ p7c: application/pkcs7-mime
442
+ oth: application/vnd.oasis.opendocument.text-web
443
+ jpgv: video/jpeg
444
+ spot: text/vnd.in3d.spot
445
+ swf: application/x-shockwave-flash
446
+ scq: application/scvp-cv-request
447
+ xbd: application/vnd.fujixerox.docuworks.binder
448
+ vcd: application/x-cdlink
449
+ x3d: application/vnd.hzn-3d-crossword
450
+ vxml: application/voicexml+xml
451
+ oti: application/vnd.oasis.opendocument.image-template
452
+ m2v: video/mpeg
453
+ cpp: text/x-c
454
+ vtu: model/vnd.vtu
455
+ mpm: application/vnd.blueice.multipass
456
+ irm: application/vnd.ibm.rights-management
457
+ rcprofile: application/vnd.ipunplugged.rcprofile
458
+ imp: application/vnd.accpac.simply.imp
459
+ fg5: application/vnd.fujitsu.oasysgp
460
+ vcf: text/x-vcard
461
+ tiff: image/tiff
462
+ scs: application/scvp-cv-response
463
+ mpn: application/vnd.mophun.application
464
+ svgz: image/svg+xml
465
+ vcg: application/vnd.groove-vcard
466
+ xla: application/vnd.ms-excel
467
+ wpl: application/vnd.ms-wpl
468
+ cdbcmsg: application/vnd.contact.cmsg
469
+ mpp: application/vnd.ms-project
470
+ irp: application/vnd.irepository.package+xml
471
+ bmi: application/vnd.bmi
472
+ ims: application/vnd.ms-ims
473
+ oprc: application/vnd.palm
474
+ otm: application/vnd.oasis.opendocument.text-master
475
+ tif: image/tiff
476
+ wav: audio/x-wav
477
+ xlc: application/vnd.ms-excel
478
+ eot: application/vnd.ms-fontobject
479
+ mscml: application/mediaservercontrol+xml
480
+ cpt: application/mac-compactpro
481
+ pub: application/x-mspublisher
482
+ ppd: application/vnd.cups-ppd
483
+ qxl: application/vnd.quark.quarkxpress
484
+ pkg: application/octet-stream
485
+ wax: audio/x-ms-wax
486
+ wks: application/vnd.ms-works
487
+ js: application/javascript
488
+ otp: application/vnd.oasis.opendocument.presentation-template
489
+ pict: image/pict
490
+ dll: application/x-msdownload
491
+ mpt: application/vnd.ms-project
492
+ pki: application/pkixcmp
493
+ c: text/x-c
494
+ ifb: text/calendar
495
+ xvml: application/xv+xml
496
+ mdb: application/x-msaccess
497
+ p7m: application/pkcs7-mime
498
+ xbm: image/x-xbitmap
499
+ jpeg: image/jpeg
500
+ cdf: application/x-netcdf
501
+ m13: application/x-msmediaview
502
+ dvi: application/x-dvi
503
+ hbci: application/vnd.hbci
504
+ distz: application/octet-stream
505
+ wps: application/vnd.ms-works
506
+ ots: application/vnd.oasis.opendocument.spreadsheet-template
507
+ mus: application/vnd.musician
508
+ tr: text/troff
509
+ m14: application/x-msmediaview
510
+ ptid: application/vnd.pvi.ptid1
511
+ ott: application/vnd.oasis.opendocument.text-template
512
+ ez: application/andrew-inset
513
+ rtf: application/rtf
514
+ etx: text/x-setext
515
+ f: text/x-fortran
516
+ bmp: image/bmp
517
+ ustar: application/x-ustar
518
+ susp: application/vnd.sus-calendar
519
+ rep: application/vnd.businessobjects
520
+ wdb: application/vnd.ms-works
521
+ txd: application/vnd.genomatix.tuxedo
522
+ pas: text/x-pascal
523
+ cc: text/x-c
524
+ cif: chemical/x-cif
525
+ mpy: application/vnd.ibm.minipay
526
+ saf: application/vnd.yamaha.smaf-audio
527
+ h: text/x-c
528
+ mid: audio/midi
529
+ p7r: application/x-pkcs7-certreqresp
530
+ pfr: application/font-tdpfr
531
+ qxt: application/vnd.quark.quarkxpress
532
+ txf: application/vnd.mobius.txf
533
+ mj2: video/mj2
534
+ htm: text/html
535
+ ppm: image/x-portable-pixmap
536
+ atc: application/vnd.acucorp
537
+ xlm: application/vnd.ms-excel
538
+ p7s: application/pkcs7-signature
539
+ lrm: application/vnd.ms-lrm
540
+ maker: application/vnd.framemaker
541
+ efif: application/vnd.picsel
542
+ srx: application/sparql-results+xml
543
+ pclxl: application/vnd.hp-pclxl
544
+ vcs: text/x-vcalendar
545
+ mdi: image/vnd.ms-modi
546
+ davmount: application/davmount+xml
547
+ mif: application/vnd.mif
548
+ ma: application/mathematica
549
+ cii: application/vnd.anser-web-certificate-issue-initiation
550
+ ei6: application/vnd.pg.osasli
551
+ midi: audio/midi
552
+ xspf: application/xspf+xml
553
+ sitx: application/x-stuffitx
554
+ mb: application/mathematica
555
+ skd: application/vnd.koan
556
+ gqf: application/vnd.grafeq
557
+ ra: audio/x-pn-realaudio
558
+ spc: application/x-pkcs7-certificates
559
+ es3: application/vnd.eszigno3+xml
560
+ twds: application/vnd.simtech-mindmapper
561
+ xfdf: application/vnd.adobe.xfdf
562
+ cil: application/vnd.ms-artgalry
563
+ 3g2: video/3gpp2
564
+ me: text/troff
565
+ aep: application/vnd.audiograph
566
+ nlu: application/vnd.neurolanguage.nlu
567
+ ifm: application/vnd.shana.informed.formdata
568
+ csh: application/x-csh
569
+ hh: text/x-c
570
+ iges: model/iges
571
+ xvm: application/xv+xml
572
+ pfx: application/x-pkcs12
573
+ xls: application/vnd.ms-excel
574
+ pps: application/vnd.ms-powerpoint
575
+ p10: application/pkcs10
576
+ lwp: application/vnd.lotus-wordpro
577
+ vcx: application/vnd.vcx
578
+ p: text/x-pascal
579
+ 3dml: text/vnd.in3d.3dml
580
+ eml: message/rfc822
581
+ ppt: application/vnd.ms-powerpoint
582
+ spf: application/vnd.yamaha.smaf-phrase
583
+ msf: application/vnd.epson.msf
584
+ qbo: application/vnd.intu.qbo
585
+ fpx: image/vnd.fpx
586
+ p12: application/x-pkcs12
587
+ xlt: application/vnd.ms-excel
588
+ org: application/vnd.lotus-organizer
589
+ pdb: chemical/x-pdb
590
+ zaz: application/vnd.zzazz.deck+xml
591
+ fzs: application/vnd.fuzzysheet
592
+ def: text/plain
593
+ msh: model/mesh
594
+ gtar: application/x-gtar
595
+ mxf: application/mxf
596
+ fdf: application/vnd.fdf
597
+ ipk: application/vnd.shana.informed.package
598
+ s: text/x-asm
599
+ mpga: audio/mpeg
600
+ msi: application/x-msdownload
601
+ atomsvc: application/atomsvc+xml
602
+ mathml: application/mathml+xml
603
+ xfdl: application/vnd.xfdl
604
+ t: text/troff
605
+ xlw: application/vnd.ms-excel
606
+ fnc: application/vnd.frogans.fnc
607
+ doc: application/msword
608
+ skm: application/vnd.koan
609
+ tsv: text/tab-separated-values
610
+ pic: image/x-pict
611
+ pdf: application/pdf
612
+ kon: application/vnd.kde.kontour
613
+ txt: text/plain
614
+ cdx: chemical/x-cdx
615
+ spl: application/x-futuresplash
616
+ msl: application/vnd.mobius.msl
617
+ rtx: text/richtext
618
+ cdy: application/vnd.cinderella
619
+ skp: application/vnd.koan
620
+ csp: application/vnd.commonspace
621
+ fsc: application/vnd.fsc.weblaunch
622
+ dtd: application/xml-dtd
623
+ rl: application/resource-lists+xml
624
+ ssml: application/ssml+xml
625
+ sfs: application/vnd.spotfire.sfs
626
+ rm: application/vnd.rn-realmedia
627
+ psb: application/vnd.3gpp.pic-bw-small
628
+ mxl: application/vnd.recordare.musicxml
629
+ mjp2: video/mj2
630
+ css: text/css
631
+ ecelp9600: audio/vnd.nuera.ecelp9600
632
+ m3a: audio/mpeg
633
+ spp: application/scvp-vp-response
634
+ karbon: application/vnd.kde.karbon
635
+ gqs: application/vnd.grafeq
636
+ cdxml: application/vnd.chemdraw+xml
637
+ spq: application/scvp-vp-request
638
+ skt: application/vnd.koan
639
+ cst: application/vnd.commonspace
640
+ wm: video/x-ms-wm
641
+ wbmp: image/vnd.wap.wbmp
642
+ psd: image/vnd.adobe.photoshop
643
+ png: image/png
644
+ sv4crc: application/x-sv4crc
645
+ ktr: application/vnd.kahootz
646
+ bpk: application/octet-stream
647
+ ace: application/x-ace-compressed
648
+ ms: text/troff
649
+ csv: text/csv
650
+ bat: application/x-msdownload
651
+ rq: application/sparql-query
652
+ scpt: application/octet-stream
653
+ cla: application/vnd.claymore
654
+ rmi: audio/midi
655
+ der: application/x-x509-ca-cert
656
+ mc1: application/vnd.medcalcdata
657
+ json: application/json
658
+ atx: application/vnd.antix.game-component
659
+ rb: text/plain
660
+ pl: text/plain
661
+ py: text/plain