Skip to content

Commit

Permalink
Moving aws-s3 into git
Browse files Browse the repository at this point in the history
  • Loading branch information
marcel committed Jun 6, 2008
0 parents commit d390ede
Show file tree
Hide file tree
Showing 92 changed files with 8,664 additions and 0 deletions.
67 changes: 67 additions & 0 deletions CHANGELOG
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
trunk:

0.4.0:

- Various adjustments to connection handling to try to mitigate exceptions raised from deep within Net::HTTP.

- Don't coerce numbers that start with a zero because the zero will be lost. If a bucket, for example, has a name like '0815', all operation it will fail. Closes ticket #10089 [reported anonymously]"

- Add ability to connect through a proxy using the :proxy option when establishing a connection. Suggested by [Simon Horne <[email protected]>]

- Add :authenticated option to url_for. When passing false, don't generate signature parameters for query string.

- Make url_for accept custom port settings. [Rich Olson]

0.3.0:

- Ensure content type is eventually set to account for changes made to Net::HTTP in Ruby version 1.8.5. Reported by [David Hanson, Stephen Caudill, Tom Mornini <[email protected]>]

- Add :persistent option to connections which keeps a persistent connection rather than creating a new one per request, defaulting to true. Based on a patch by [Metalhead <[email protected]>]

- If we are retrying a request after rescuing one of the retry exceptions, rewind the body if its an IO stream so it starts at the beginning. [Jamis Buck]

- Ensure that all paths being submitted to S3 are valid utf8. If they are not, we remove the extended characters. Ample help from [Jamis Buck]

- Wrap logs in Log objects which exposes each line as a Log::Line that has accessors by name for each field.

- Various performance optimizations for the extensions code. [Roman LE NEGRATE <[email protected]>]

- Make S3Object.copy more efficient by streaming in both directions in parallel.

- Open up Net:HTTPGenericRequest to make the chunk size 1 megabyte, up from 1 kilobyte.

- Add S3Object.exists?

0.2.1:

- When the bucket name argument (for e.g. Bucket.objects) is being used as the option hash, reassign it to the options variable and set the bucket to nil so bucket inference + options works.

- Don't call CGI.escape on query string parameters in Hash#to_query_string since all paths get passed through URI.escape right before the request is made. Paths were getting double escaped. Bug spotted by [David Hanson]

- Make s3sh exec irb.bat if on Windows. Bug spotted by [N. Sathish Kumar <[email protected]>]

- Avoid class_variable_(get|set) since it was only recently added to Ruby. Spotted by [N. Sathish Kumar <[email protected]>]

- Raise NoSuchKey if S3Object.about requests a key that does not exist.

- If the response body is an empty string, don't try to parse it as xml.

- Don't reject every body type save for IO and String at the door when making a request. Suggested by [Alex MacCaw <[email protected]>]

- Allow dots in bucket names. [Jesse Newland]

0.2.0:

- Infer content type for an object when calling S3Object.store without explicitly passing in the :content_type option.

0.1.2:

- Scrap (overly) fancy generator based version of CoercibleString with a much simpler and clearer case statement. Continuations are really slow and the specific use of the generator was leaking memory. Bug spotted by [Remco van't Veer]

0.1.1:

- Don't add the underscore method to String if it is already defined (like, for example, from ActiveSupport). Bug spotted by [Matt White <[email protected]>]

0.1.0:

- Initial public release
19 changes: 19 additions & 0 deletions COPYING
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
#
# Copyright (c) 2006-2007 Marcel Molina Jr. <[email protected]>
#
# Permission is hereby granted, free of charge, to any person obtaining a copy of
# this software and associated documentation files (the "Software"), to deal in the
# Software without restriction, including without limitation the rights to use,
# copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the
# Software, and to permit persons to whom the Software is furnished to do so,
# subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
# FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
55 changes: 55 additions & 0 deletions INSTALL
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
== Rubygems

The easiest way to install aws/s3 is with Rubygems:

% sudo gem i aws-s3 -ry

== Directly from svn

% svn co svn://rubyforge.org/var/svn/amazon/s3/trunk aws

== As a Rails plugin

If you want to use aws/s3 with a Rails application, you can export the repository
into your plugins directory and then check it in:

% cd my-rails-application/vendor/plugins
% svn export svn://rubyforge.org/var/svn/amazon/s3/trunk aws
% svn add aws

Or you could pull it down with an svn:externals:

% cd my-rails-application/vendor/plugins
% svn propedit svn:externals .

Then add the following line, save and exit:

aws svn://rubyforge.org/var/svn/amazon/s3/trunk

If you go the svn route, be sure that you have all the dependencies installed. The list of dependencies follow.

== Dependencies

AWS::S3 requires Ruby 1.8.4 or greater.

It also has the following dependencies:

sudo gem i xml-simple -ry
sudo gem i builder -ry
sudo gem i mime-types -ry

=== XML parsing (xml-simple)

AWS::S3 depends on XmlSimple (http://xml-simple.rubyforge.org/). When installing aws/s3 with
Rubygems, this dependency will be taken care of for you. Otherwise, installation instructions are listed on the xml-simple
site.

If your system has the Ruby libxml bindings installed (http://libxml.rubyforge.org/) they will be used instead of REXML (which is what XmlSimple uses). For those concerned with speed and efficiency, it would behoove you to install libxml (instructions here: http://libxml.rubyforge.org/install.html) as it is considerably faster and less expensive than REXML.

=== XML generation (builder)

AWS::S3 also depends on the Builder library (http://builder.rubyforge.org/ and http://rubyforge.org/projects/builder/). This will also automatically be installed for you when using Rubygems.

=== Content type inference (mime-types)

AWS::S3 depends on the MIME::Types library (http://mime-types.rubyforge.org/) to infer the content type of an object that does not explicitly specify it. This library will automatically be installed for you when using Rubygems.
Loading

0 comments on commit d390ede

Please sign in to comment.