mgreenly-s3sync 1.2.4

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.
data/README.rdoc ADDED
@@ -0,0 +1,11 @@
1
+ = Welcome
2
+
3
+ This is a shallow fork of the real s3sync[http://s3sync.net/wiki] project. I created
4
+ it mostly because I wanted to wrap s3sync in a gem but also because I do intend to
5
+ hack on it.
6
+
7
+ = License
8
+
9
+ The original files were distributed under a bastardized (MIT like) open source licenses.
10
+ If that matters to you, look through the original code. Any additional work I contribute
11
+ will be provided via an MIT style license.
data/Rakefile ADDED
@@ -0,0 +1,35 @@
1
+ require 'rake/testtask'
2
+ require 'rake/packagetask'
3
+ require 'rake/gempackagetask'
4
+ require 'rake/rdoctask'
5
+
6
+ PKG_NAME = "s3sync"
7
+
8
+ PKG_VERSION = "1.2.4"
9
+
10
+ gemspec = eval(File.read("s3sync.gemspec"))
11
+
12
+
13
+ task :default => [:package]
14
+
15
+ Rake::TestTask.new do |t|
16
+ t.libs << "test"
17
+ t.test_files = FileList['test/*_test.rb']
18
+ t.verbose = true
19
+ end
20
+
21
+ Rake::GemPackageTask.new(gemspec) do |pkg|
22
+ pkg.need_zip = true
23
+ pkg.need_tar = true
24
+ end
25
+
26
+ Rake::RDocTask.new do |rd|
27
+ rd.main = "README.rdoc"
28
+ rd.options << "--line-numbers"
29
+ rd.options << "--inline-source"
30
+ rd.options << "--all"
31
+ rd.rdoc_files.include( "README.rdoc", "lib/**/*.rb" )
32
+ rd.rdoc_dir = "doc"
33
+ end
34
+
35
+
data/bin/s3cmd ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 's3sync/s3cmd'
data/bin/s3sync ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 's3sync/s3sync'
@@ -0,0 +1,387 @@
1
+ = Welcome
2
+
3
+ This is a shallow fork of the real s3sync[http://s3sync.net/wiki] project. I created
4
+ it mostly because I wanted to wrap s3sync in a gem but also because I do intend to
5
+ hack on it.
6
+
7
+ = Original Readme
8
+
9
+
10
+ Welcome to s3sync.rb
11
+ --------------------
12
+ Home page, wiki, forum, bug reports, etc: http://s3sync.net
13
+
14
+ This is a ruby program that easily transfers directories between a local
15
+ directory and an S3 bucket:prefix. It behaves somewhat, but not precisely, like
16
+ the rsync program. In particular, it shares rsync's peculiar behavior that
17
+ trailing slashes on the source side are meaningful. See examples below.
18
+
19
+ One benefit over some other comparable tools is that s3sync goes out of its way
20
+ to mirror the directory structure on S3. Meaning you don't *need* to use s3sync
21
+ later in order to view your files on S3. You can just as easily use an S3
22
+ shell, a web browser (if you used the --public-read option), etc. Note that
23
+ s3sync is NOT necessarily going to be able to read files you uploaded via some
24
+ other tool. This includes things uploaded with the old perl version! For best
25
+ results, start fresh!
26
+
27
+ s3sync runs happily on linux, probably other *ix, and also Windows (except that
28
+ symlinks and permissions management features don't do anything on Windows). If
29
+ you get it running somewhere interesting let me know (see below)
30
+
31
+ s3sync is free, and license terms are included in all the source files. If you
32
+ decide to make it better, or find bugs, please let me know.
33
+
34
+ The original inspiration for this tool is the perl script by the same name which
35
+ was made by Thorsten von Eicken (and later updated by me). This ruby program
36
+ does not share any components or logic from that utility; the only relation is
37
+ that it performs a similar task.
38
+
39
+
40
+ Examples:
41
+ ---------
42
+ (using S3 bucket 'mybucket' and prefix 'pre')
43
+ Put the local etc directory itself into S3
44
+ s3sync.rb -r /etc mybucket:pre
45
+ (This will yield S3 keys named pre/etc/...)
46
+ Put the contents of the local /etc dir into S3, rename dir:
47
+ s3sync.rb -r /etc/ mybucket:pre/etcbackup
48
+ (This will yield S3 keys named pre/etcbackup/...)
49
+ Put contents of S3 "directory" etc into local dir
50
+ s3sync.rb -r mybucket:pre/etc/ /root/etcrestore
51
+ (This will yield local files at /root/etcrestore/...)
52
+ Put the contents of S3 "directory" etc into a local dir named etc
53
+ s3sync.rb -r mybucket:pre/etc /root
54
+ (This will yield local files at /root/etc/...)
55
+ Put S3 nodes under the key pre/etc/ to the local dir etcrestore
56
+ **and create local dirs even if S3 side lacks dir nodes**
57
+ s3sync.rb -r --make-dirs mybucket:pre/etc/ /root/etcrestore
58
+ (This will yield local files at /root/etcrestore/...)
59
+
60
+
61
+ Prerequisites:
62
+ --------------
63
+ You need a functioning Ruby (>=1.8.4) installation, as well as the OpenSSL ruby
64
+ library (which may or may not come with your ruby).
65
+
66
+ How you get these items working on your system is really not any of my
67
+ business, but you might find the following things helpful. If you're using
68
+ Windows, the ruby site has a useful "one click installer" (although it takes
69
+ more clicks than that, really). On debian (and ubuntu, and other debian-like
70
+ things), there are apt packages available for ruby and the open ssl lib.
71
+
72
+
73
+ Your environment:
74
+ -----------------
75
+ s3sync needs to know several interesting values to work right. It looks for
76
+ them in the following environment variables -or- a s3config.yml file.
77
+ In the yml case, the names need to be lowercase (see example file).
78
+ Furthermore, the yml is searched for in the following locations, in order:
79
+ $S3CONF/s3config.yml
80
+ $HOME/.s3conf/s3config.yml
81
+ /etc/s3conf/s3config.yml
82
+
83
+ Required:
84
+ AWS_ACCESS_KEY_ID
85
+ AWS_SECRET_ACCESS_KEY
86
+
87
+ If you don't know what these are, then s3sync is probably not the
88
+ right tool for you to be starting out with.
89
+ Optional:
90
+ AWS_S3_HOST - I don't see why the default would ever be wrong
91
+ HTTP_PROXY_HOST,HTTP_PROXY_PORT,HTTP_PROXY_USER,HTTP_PROXY_PASSWORD - proxy
92
+ SSL_CERT_DIR - Where your Cert Authority keys live; for verification
93
+ SSL_CERT_FILE - If you have just one PEM file for CA verification
94
+ S3SYNC_RETRIES - How many HTTP errors to tolerate before exiting
95
+ S3SYNC_WAITONERROR - How many seconds to wait after an http error
96
+ S3SYNC_MIME_TYPES_FILE - Where is your mime.types file
97
+ S3SYNC_NATIVE_CHARSET - For example Windows-1252. Defaults to ISO-8859-1.
98
+ AWS_CALLING_FORMAT - Defaults to REGULAR
99
+ REGULAR # http://s3.amazonaws.com/bucket/key
100
+ SUBDOMAIN # http://bucket.s3.amazonaws.com/key
101
+ VANITY # http://<vanity_domain>/key
102
+
103
+ Important: For EU-located buckets you should set the calling format to SUBDOMAIN
104
+ Important: For US buckets with CAPS or other weird traits set the calling format
105
+ to REGULAR
106
+
107
+ I use "envdir" from the daemontools package to set up my env
108
+ variables easily: http://cr.yp.to/daemontools/envdir.html
109
+ For example:
110
+ envdir /root/s3sync/env /root/s3sync/s3sync.rb -etc etc etc
111
+ I know there are other similar tools out there as well.
112
+
113
+ You can also just call it in a shell script where you have exported the vars
114
+ first such as:
115
+ #!/bin/bash
116
+ export AWS_ACCESS_KEY_ID=valueGoesHere
117
+ ...
118
+ s3sync.rb -etc etc etc
119
+
120
+ But by far the easiest (and newest) way to set this up is to put the name:value
121
+ pairs in a file named s3config.yml and let the yaml parser pick them up. There
122
+ is an .example file shipped with the tar.gz to show what a yaml file looks like.
123
+ Thanks to Alastair Brunton for this addition.
124
+
125
+ You can also use some combination of .yaml and environment variables, if you
126
+ want. Go nuts.
127
+
128
+
129
+ Management tasks
130
+ ----------------
131
+ For low-level S3 operations not encapsulated by the sync paradigm, try the
132
+ companion utility s3cmd.rb. See README_s3cmd.txt.
133
+
134
+
135
+ About single files
136
+ ------------------
137
+ s3sync lacks the special case code that would be needed in order to handle a
138
+ source/dest that's a single file. This isn't one of the supported use cases so
139
+ don't expect it to work. You can use the companion utility s3cmd.rb for single
140
+ get/puts.
141
+
142
+
143
+ About Directories, the bane of any S3 sync-er
144
+ ---------------------------------------------
145
+ In S3 there's no actual concept of folders, just keys and nodes. So, every tool
146
+ uses its own proprietary way of storing dir info (my scheme being the best
147
+ naturally) and in general the methods are not compatible.
148
+
149
+ If you populate S3 by some means *other than* s3sync and then try to use s3sync
150
+ to "get" the S3 stuff to a local filesystem, you will want to use the
151
+ --make-dirs option. This causes the local dirs to be created even if there is no
152
+ s3sync-compatible directory node info stored on the S3 side. In other words,
153
+ local folders are conjured into existence whenever they are needed to make the
154
+ "get" succeed.
155
+
156
+
157
+ A word on SSL_CERT_DIR:
158
+ -----------------------
159
+ On my debian install I didn't find any root authority public keys. I installed
160
+ some by running this shell archive:
161
+ http://mirbsd.mirsolutions.de/cvs.cgi/src/etc/ssl.certs.shar
162
+ (You have to click download, and then run it wherever you want the certs to be
163
+ placed). I do not in any way assert that these certificates are good,
164
+ comprehensive, moral, noble, or otherwise correct. But I am using them.
165
+
166
+ If you don't set up a cert dir, and try to use ssl, then you'll 1) get an ugly
167
+ warning message slapped down by ruby, and 2) not have any protection AT ALL from
168
+ malicious servers posing as s3.amazonaws.com. Seriously... you want to get
169
+ this right if you're going to have any sensitive data being tossed around.
170
+ --
171
+ There is a debian package ca-certificates; this is what I'm using now.
172
+ apt-get install ca-certificates
173
+ and then use:
174
+ SSL_CERT_DIR=/etc/ssl/certs
175
+
176
+ You used to be able to use just one certificate, but recently AWS has started
177
+ using more than one CA.
178
+
179
+
180
+ Getting started:
181
+ ----------------
182
+ Invoke by typing s3sync.rb and you should get a nice usage screen.
183
+ Options can be specified in short or long form (except --delete, which has no
184
+ short form)
185
+
186
+ ALWAYS TEST NEW COMMANDS using --dryrun(-n) if you want to see what will be
187
+ affected before actually doing it. ESPECIALLY if you use --delete. Otherwise, do
188
+ not be surprised if you misplace a '/' or two and end up deleting all your
189
+ precious, precious files.
190
+
191
+ If you use the --public-read(-p) option, items sent to S3 will be ACL'd so that
192
+ anonymous web users can download them, given the correct URL. This could be
193
+ useful if you intend to publish directories of information for others to see.
194
+ For example, I use s3sync to publish itself to its home on S3 via the following
195
+ command: s3sync.rb -v -p publish/ ServEdge_pub:s3sync Where the files live in a
196
+ local folder called "publish" and I wish them to be copied to the URL:
197
+ http://s3.amazonaws.com/ServEdge_pub/s3sync/... If you use --ssl(-s) then your
198
+ connections with S3 will be encrypted. Otherwise your data will be sent in clear
199
+ form, i.e. easy to intercept by malicious parties.
200
+
201
+ If you want to prune items from the destination side which are not found on the
202
+ source side, you can use --delete. Always test this with -n first to make sure
203
+ the command line you specify is not going to do something terrible to your
204
+ cherished and irreplaceable data.
205
+
206
+
207
+ Updates and other discussion:
208
+ -----------------------------
209
+ The latest version of s3sync should normally be at:
210
+ http://s3.amazonaws.com/ServEdge_pub/s3sync/s3sync.tar.gz
211
+ and the Amazon S3 forums probably have a few threads going on it at any given
212
+ time. I may not always see things posted to the threads, so if you want you can
213
+ contact me at gbs-s3@10forward.com too.
214
+
215
+
216
+ Change Log:
217
+ -----------
218
+
219
+ 2006-09-29:
220
+ Added support for --expires and --cache-control. Eg:
221
+ --expires="Thu, 01 Dec 2007 16:00:00 GMT"
222
+ --cache-control="no-cache"
223
+
224
+ Thanks to Charles for pointing out the need for this, and supplying a patch
225
+ proving that it would be trivial to add =) Apologies for not including the short
226
+ form (-e) for the expires. I have a rule that options taking arguments should
227
+ use the long form.
228
+ ----------
229
+
230
+ 2006-10-04
231
+ Several minor debugs and edge cases.
232
+ Fixed a bug where retries didn't rewind the stream to start over.
233
+ ----------
234
+
235
+ 2006-10-12
236
+ Version 1.0.5
237
+ Finally figured out and fixed bug of trying to follow local symlink-to-directory.
238
+ Fixed a really nasty sorting discrepancy that caused problems when files started
239
+ with the same name as a directory.
240
+ Retry on connection-reset on the S3 side.
241
+ Skip files that we can't read instead of dying.
242
+ ----------
243
+
244
+ 2006-10-12
245
+ Version 1.0.6
246
+ Some GC voodoo to try and keep a handle on the memory footprint a little better.
247
+ There is still room for improvement here.
248
+ ----------
249
+
250
+ 2006-10-13
251
+ Version 1.0.7
252
+ Fixed symlink dirs being stored to S3 as real dirs (and failing with 400)
253
+ Added a retry catch for connection timeout error.
254
+ (Hopefully) caught a bug that expected every S3 listing to contain results
255
+ ----------
256
+
257
+ 2006-10-14
258
+ Version 1.0.8
259
+ Was testing for file? before symlink? in localnode.stream. This meant that for
260
+ symlink files it was trying to shove the real file contents into the symlink
261
+ body on s3.
262
+ ----------
263
+
264
+ 2006-10-14
265
+ Version 1.0.9
266
+ Woops, I was using "max-entries" for some reason but the proper header is
267
+ "max-keys". Not a big deal.
268
+ Broke out the S3try stuff into a separate file so I could re-use it for s3cmd.rb
269
+ ----------
270
+
271
+ 2006-10-16
272
+ Added a couple debug lines; not even enough to call it a version revision.
273
+ ----------
274
+
275
+ 2006-10-25
276
+ Version 1.0.10
277
+ UTF-8 fixes.
278
+ Catching a couple more retry-able errors in s3try (instead of aborting the
279
+ program).
280
+ ----------
281
+
282
+ 2006-10-26
283
+ Version 1.0.11
284
+ Revamped some details of the generators and comparator so that directories are
285
+ handled in a more exact and uniform fashion across local and S3.
286
+ ----------
287
+
288
+ 2006-11-28
289
+ Version 1.0.12
290
+ Added a couple more error catches to s3try.
291
+ ----------
292
+
293
+ 2007-01-08
294
+ Version 1.0.13
295
+ Numerous small changes to slash and path handling, in order to catch several
296
+ cases where "root" directory nodes were not being created on S3.
297
+ This makes restores work a lot more intuitively in many cases.
298
+ ----------
299
+
300
+ 2007-01-25
301
+ Version 1.0.14
302
+ Peter Fales' marker fix.
303
+ Also, markers should be decoded into native charset (because that's what s3
304
+ expects to see).
305
+ ----------
306
+
307
+ 2007-02-19
308
+ Version 1.1.0
309
+ *WARNING* Lots of path-handling changes. *PLEASE* test safely before you just
310
+ swap this in for your working 1.0.x version.
311
+
312
+ - Adding --exclude (and there was much rejoicing).
313
+ - Found Yet Another Leading Slash Bug with respect to local nodes. It was always
314
+ "recursing" into the first folder even if there was no trailing slash and -r
315
+ wasn't specified. What it should have done in this case is simply create a node
316
+ for the directory itself, then stop (not check the dir's contents).
317
+ - Local node canonicalization was (potentially) stripping the trailing slash,
318
+ which we need in order to make some decisios in the local generator.
319
+ - Fixed problem where it would prepend a "/" to s3 key names even with blank
320
+ prefix.
321
+ - Fixed S3->local when there's no "/" in the source so it doesn't try to create
322
+ a folder with the bucket name.
323
+ - Updated s3try and s3_s3sync_mod to allow SSL_CERT_FILE
324
+ ----------
325
+
326
+ 2007-02-22
327
+ Version 1.1.1
328
+ Fixed dumb regression bug caused by the S3->local bucket name fix in 1.1.0
329
+ ----------
330
+
331
+ 2007-02-25
332
+ Version 1.1.2
333
+ Added --progress
334
+ ----------
335
+
336
+ 2007-06-02
337
+ Version 1.1.3
338
+ IMPORTANT!
339
+ Pursuant to http://s3sync.net/forum/index.php?topic=49.0 , the tar.gz now
340
+ expands into its own sub-directory named "s3sync" instead of dumping all the
341
+ files into the current directory.
342
+
343
+ In the case of commands of the form:
344
+ s3sync -r somedir somebucket:
345
+ The root directory node in s3 was being stored as "somedir/" instead of "somedir"
346
+ which caused restores to mess up when you say:
347
+ s3sync -r somebucket: restoredir
348
+ The fix to this, by coincidence, actually makes s3fox work even *less* well with
349
+ s3sync. I really need to build my own xul+javascript s3 GUI some day.
350
+
351
+ Also fixed some of the NoMethodError stuff for when --progress is used
352
+ and caught Errno::ETIMEDOUT
353
+ ----------
354
+
355
+ 2007-07-12
356
+ Version 1.1.4
357
+ Added Alastair Brunton's yaml config code.
358
+ ----------
359
+
360
+ 2007-11-17
361
+ Version 1.2.1
362
+ Compatibility for S3 API revisions.
363
+ When retries are exhausted, emit an error.
364
+ Don't ever try to delete the 'root' local dir.
365
+ ----------
366
+
367
+ 2007-11-20
368
+ Version 1.2.2
369
+ Handle EU bucket 307 redirects (in s3try.rb)
370
+ --make-dirs added
371
+ ----------
372
+
373
+ 2007-11-20
374
+ Version 1.2.3
375
+ Fix SSL verification settings that broke in new S3 API.
376
+ ----------
377
+
378
+ 2008-01-06
379
+ Version 1.2.4
380
+ Run from any dir (search "here" for includes).
381
+ Search out s3config.yml in some likely places.
382
+ Reset connection (properly) on retry-able non-50x errors.
383
+ Fix calling format bug preventing it from working from yml.
384
+ Added http proxy support.
385
+ ----------
386
+
387
+ FNORD
@@ -0,0 +1,172 @@
1
+ Welcome to s3cmd.rb
2
+ -------------------
3
+ This is a ruby program that wraps S3 operations into a simple command-line tool.
4
+ It is inspired by things like rsh3ll, #sh3ll, etc., but shares no code from
5
+ them. It's meant as a companion utility to s3sync.rb but could be used on its
6
+ own (provided you have read the other readme file and know how to use s3sync in
7
+ theory).
8
+
9
+ I made this even though lots of other "shell"s exist, because I wanted a
10
+ single-operation utility, instead of a shell "environment". This lends itself
11
+ more to scripting, etc. Also the delete operation on rsh3ll seems to be borken
12
+ at the moment? =(
13
+
14
+ Users not yet familiar with s3sync should read about that first, since s3cmd and
15
+ s3sync share a tremendous amount of conventions and syntax. Particularly you
16
+ have to set up environment variables prior to calling s3cmd, and s3cmd also uses
17
+ the "bucket:key" syntax popularized by s3sync. Many of the options are the same
18
+ too. Really, go read the other readme first if you haven't used s3sync yet.
19
+ Otherwise you will become confused. It's OK, I'll wait.
20
+
21
+ ....
22
+
23
+ In general, s3sync and s3cmd complement each other. s3sync is useful to perform
24
+ serious synchronization operations, and s3cmd allows you to do simple things
25
+ such as bucket management, listing, transferring single files, and the like.
26
+
27
+ Here is the usage, with examples to follow.
28
+
29
+ s3cmd.rb [options] <command> [arg(s)] version 1.0.0
30
+ --help -h --verbose -v --dryrun -n
31
+ --ssl -s --debug -d
32
+
33
+ Commands:
34
+ s3cmd.rb listbuckets [headers]
35
+ s3cmd.rb createbucket|deletebucket <bucket> [headers]
36
+ s3cmd.rb list <bucket>[:prefix] [max/page] [delimiter] [headers]
37
+ s3cmd.rb delete <bucket>:key [headers]
38
+ s3cmd.rb deleteall <bucket>[:prefix] [headers]
39
+ s3cmd.rb get|put <bucket>:key <file> [headers]
40
+
41
+
42
+ A note about [headers]
43
+ ----------------------
44
+ For some S3 operations, such as "put", you might want to specify certain headers
45
+ to the request such as Cache-Control, Expires, x-amz-acl, etc. Rather than
46
+ supporting a load of separate command-line options for these, I just allow
47
+ header specification. So to upload a file with public-read access you could
48
+ say:
49
+ s3cmd.rb put MyBucket:TheFile.txt x-amz-acl:public-read
50
+
51
+ If you don't need to add any particular headers then you can just ignore this
52
+ whole [headers] thing and pretend it's not there. This is somewhat of an
53
+ advanced option.
54
+
55
+
56
+ Examples
57
+ --------
58
+ List all the buckets your account owns:
59
+ s3cmd.rb listbuckets
60
+
61
+ Create a new bucket:
62
+ s3cmd.rb createbucket BucketName
63
+
64
+ Create a new bucket in the EU:
65
+ s3cmd.rb createbucket BucketName EU
66
+
67
+ Find out the location constraint of a bucket:
68
+ s3cmd.rb location BucketName
69
+
70
+ Delete an old bucket you don't want any more:
71
+ s3cmd.rb deletebucket BucketName
72
+
73
+ Find out what's in a bucket, 10 lines at a time:
74
+ s3cmd.rb list BucketName 10
75
+
76
+ Only look in a particular prefix:
77
+ s3cmd.rb list BucketName:startsWithThis
78
+
79
+ Look in the virtual "directory" named foo;
80
+ lists sub-"directories" and keys that are at this level.
81
+ Note that if you specify a delimiter you must specify a max before it.
82
+ (until I make the options parsing smarter)
83
+ s3cmd.rb list BucketName:foo/ 10 /
84
+
85
+ Delete a key:
86
+ s3cmd.rb delete BucketName:AKey
87
+
88
+ Delete all keys that match (like a combo between list and delete):
89
+ s3cmd.rb deleteall BucketName:SomePrefix
90
+
91
+ Only pretend you're going to delete all keys that match, but list them:
92
+ s3cmd.rb --dryrun deleteall BucketName:SomePrefix
93
+
94
+ Delete all keys in a bucket (leaving the bucket):
95
+ s3cmd.rb deleteall BucketName
96
+
97
+ Get a file from S3 and store it to a local file
98
+ s3cmd.rb get BucketName:TheFileOnS3.txt ALocalFile.txt
99
+
100
+ Put a local file up to S3
101
+ Note we don't automatically set mime type, etc.
102
+ NOTE that the order of the options doesn't change. S3 stays first!
103
+ s3cmd.rb put BucketName:TheFileOnS3.txt ALocalFile.txt
104
+
105
+
106
+ Change Log:
107
+ -----------
108
+ 2006-10-14:
109
+ Created.
110
+ -----------
111
+
112
+ 2006-10-16
113
+ Version 1.0.1
114
+ Force content length to a string value since some ruby's don't convert it right.
115
+ -----------
116
+
117
+ 2006-10-25
118
+ UTF-8 fixes.
119
+ -----------
120
+
121
+ 2006-11-28
122
+ Version 1.0.3
123
+ Added a couple more error catches to s3try.
124
+ ----------
125
+
126
+ 2007-01-25
127
+ Version 1.0.4
128
+ Peter Fales' marker fix.
129
+ Also, markers should be decoded into native charset (because that's what s3
130
+ expects to see).
131
+ ----------
132
+
133
+ 2007-02-19
134
+ - Updated s3try and s3_s3sync_mod to allow SSL_CERT_FILE
135
+ ----------
136
+
137
+ 2007-2-25
138
+ Added --progress
139
+ ----------
140
+
141
+ 2007-07-12
142
+ Version 1.0.6
143
+ Added Alastair Brunton's yaml config code.
144
+ ----------
145
+
146
+ 2007-11-17
147
+ Version 1.2.1
148
+ Compatibility for S3 API revisions.
149
+ When retries are exhausted, emit an error.
150
+ ----------
151
+
152
+ 2007-11-20
153
+ Version 1.2.2
154
+ Handle EU bucket 307 redirects (in s3try.rb)
155
+ ----------
156
+
157
+ 2007-11-20
158
+ Version 1.2.3
159
+ Fix SSL verification settings that broke in new S3 API.
160
+ ----------
161
+
162
+ 2008-01-06
163
+ Version 1.2.4
164
+ Run from any dir (search "here" for includes).
165
+ Search out s3config.yml in some likely places.
166
+ Reset connection (properly) on retry-able non-50x errors.
167
+ Fix calling format bug preventing it from working from yml.
168
+ Added http proxy support.
169
+ ----------
170
+
171
+
172
+ FNORD