s33r 0.2 → 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.
- data/bin/s3cli.rb +25 -16
- data/html/classes/MIME.html +120 -0
- data/html/classes/MIME/InvalidContentType.html +119 -0
- data/html/classes/MIME/Type.html +1173 -0
- data/html/classes/MIME/Types.html +566 -0
- data/html/classes/Net.html +108 -0
- data/html/classes/Net/HTTPGenericRequest.html +233 -0
- data/html/classes/Net/HTTPResponse.html +242 -0
- data/html/classes/S33r.html +743 -0
- data/html/classes/S33r/BucketListing.html +372 -0
- data/html/classes/S33r/Client.html +981 -0
- data/html/classes/S33r/NamedBucket.html +620 -0
- data/html/classes/S33r/S33rException.html +118 -0
- data/html/classes/S33r/S33rException/BucketListingMaxKeysError.html +111 -0
- data/html/classes/S33r/S33rException/InvalidBucketListing.html +111 -0
- data/html/classes/S33r/S33rException/MalformedBucketName.html +111 -0
- data/html/classes/S33r/S33rException/MethodNotAvailable.html +111 -0
- data/html/classes/S33r/S33rException/MissingRequiredHeaders.html +111 -0
- data/html/classes/S33r/S33rException/MissingResource.html +111 -0
- data/html/classes/S33r/S33rException/UnsupportedCannedACL.html +111 -0
- data/html/classes/S33r/S33rException/UnsupportedHTTPMethod.html +111 -0
- data/html/classes/S33r/S3Object.html +307 -0
- data/html/classes/S33r/S3User.html +171 -0
- data/html/classes/S33r/Sync.html +151 -0
- data/html/classes/XML.html +200 -0
- data/html/classes/XML/Document.html +125 -0
- data/html/classes/XML/Node.html +124 -0
- data/html/created.rid +1 -0
- data/html/files/CHANGELOG.html +101 -0
- data/html/files/MIT-LICENSE.html +129 -0
- data/html/files/README_txt.html +209 -0
- data/html/files/lib/s33r/bucket_listing_rb.html +116 -0
- data/html/files/lib/s33r/client_rb.html +110 -0
- data/html/files/lib/s33r/core_rb.html +113 -0
- data/html/files/lib/s33r/libxml_extensions_rb.html +107 -0
- data/html/files/lib/s33r/mimetypes_rb.html +120 -0
- data/html/files/lib/s33r/named_bucket_rb.html +101 -0
- data/html/files/lib/s33r/s33r_exception_rb.html +101 -0
- data/html/files/lib/s33r/s33r_http_rb.html +108 -0
- data/html/files/lib/s33r/sync_rb.html +101 -0
- data/html/files/lib/s33r_rb.html +101 -0
- data/html/fr_class_index.html +52 -0
- data/html/fr_file_index.html +39 -0
- data/html/fr_method_index.html +126 -0
- data/html/index.html +24 -0
- data/html/rdoc-style.css +208 -0
- data/lib/s33r/bucket_listing.rb +69 -60
- data/lib/s33r/client.rb +150 -73
- data/lib/s33r/core.rb +56 -44
- data/lib/s33r/libxml_extensions.rb +10 -5
- data/lib/s33r/mimetypes.rb +3 -2
- data/lib/s33r/named_bucket.rb +89 -24
- data/lib/s33r/{s3_exception.rb → s33r_exception.rb} +2 -2
- data/lib/s33r/{net_http_overrides.rb → s33r_http.rb} +29 -21
- data/lib/s33r/sync.rb +4 -2
- data/test/cases/spec_bucket_listing.rb +10 -13
- data/test/cases/spec_client.rb +65 -0
- data/test/cases/spec_core.rb +16 -11
- data/test/cases/spec_namedbucket.rb +32 -0
- data/test/cases/spec_sync.rb +6 -5
- data/test/cases/spec_xml.rb +1 -1
- data/test/files/client_config.yml +6 -0
- data/test/files/namedbucket_config.yml +12 -0
- data/test/{s3_test_constants.rb → test_setup.rb} +7 -6
- metadata +63 -11
- data/LICENSE.txt +0 -22
- data/MIT-LICENSE +0 -21
- data/README.txt +0 -19
- data/bin/config.yml +0 -5
- data/test/cases/unit_client.rb +0 -40
- data/test/cases/unit_named_bucket.rb +0 -12
data/lib/s33r/sync.rb
CHANGED
@@ -1,7 +1,9 @@
|
|
1
|
-
module
|
1
|
+
module S33r
|
2
|
+
# Woefully incomplete module for performing sync operations.
|
3
|
+
# Aim is to enable s33r to compare files on the filesystem to S3 objects.
|
2
4
|
module Sync
|
3
5
|
|
4
|
-
#
|
6
|
+
# Get the MD5 checksum for a file (comparable to the ETag on S3 objects).
|
5
7
|
def md5sum(filename)
|
6
8
|
f = File.open(filename).binmode
|
7
9
|
OpenSSL::Digest::MD5.hexdigest(f.read)
|
@@ -1,8 +1,8 @@
|
|
1
1
|
base = File.dirname(__FILE__)
|
2
|
-
require base + '/../
|
2
|
+
require base + '/../test_setup'
|
3
3
|
require 'set'
|
4
4
|
|
5
|
-
context '
|
5
|
+
context 'S33r bucket listing' do
|
6
6
|
setup do
|
7
7
|
xml_file = File.join(base, '../files/bucket_listing.xml')
|
8
8
|
@with_bucket_listing_xml = File.open(xml_file) { |f| f.read }
|
@@ -12,6 +12,7 @@ context 'S3 bucket listing' do
|
|
12
12
|
@with_empty_bucket_listing_xml = File.open(xml_file3) { |f| f.read }
|
13
13
|
xml_file4 = File.join(base, '../files/bucket_listing_broken.xml')
|
14
14
|
@with_broken_bucket_listing_xml = File.open(xml_file4) { |f| f.read }
|
15
|
+
|
15
16
|
@bucket_listing = BucketListing.new(@with_bucket_listing_xml)
|
16
17
|
@bucket_properties = %w(name prefix marker max_keys is_truncated)
|
17
18
|
@bucket_property_setters = @bucket_properties.map { |prop| prop + "=" }
|
@@ -22,21 +23,17 @@ context 'S3 bucket listing' do
|
|
22
23
|
end
|
23
24
|
|
24
25
|
specify 'cannot be created from invalid XML' do
|
25
|
-
lambda { BucketListing.new(nil) }.should.raise
|
26
|
+
lambda { BucketListing.new(nil) }.should.raise S33rException::InvalidBucketListing
|
26
27
|
end
|
27
28
|
|
28
29
|
specify 'should recover gracefully from broken bucket listing XML' do
|
29
|
-
lambda { BucketListing.new(@with_broken_bucket_listing_xml) }.should.raise
|
30
|
+
lambda { BucketListing.new(@with_broken_bucket_listing_xml) }.should.raise S33rException::InvalidBucketListing
|
30
31
|
end
|
31
32
|
|
32
33
|
specify 'should cope if bucket is empty (i.e. no <Contents> elements)' do
|
33
34
|
@bucket_listing.set_listing_xml(@with_empty_bucket_listing_xml)
|
34
35
|
end
|
35
36
|
|
36
|
-
specify 'can return the raw XML used to initialise it' do
|
37
|
-
@bucket_listing.listing_xml.should.equal(@with_bucket_listing_xml)
|
38
|
-
end
|
39
|
-
|
40
37
|
specify 'can have the bucket listing XML reset' do
|
41
38
|
@bucket_listing.should.respond_to :set_listing_xml
|
42
39
|
end
|
@@ -82,11 +79,11 @@ context 'S3 bucket listing' do
|
|
82
79
|
end
|
83
80
|
|
84
81
|
specify 'should be able to build a full representation given full object XML from GET on resource key' do
|
85
|
-
|
82
|
+
todo
|
86
83
|
end
|
87
84
|
|
88
85
|
specify 'should provide easy access to <CommonPrefixes> elements as a hash' do
|
89
|
-
|
86
|
+
todo
|
90
87
|
end
|
91
88
|
end
|
92
89
|
|
@@ -112,14 +109,14 @@ context 'S3 object' do
|
|
112
109
|
end
|
113
110
|
|
114
111
|
specify 'can be associated with a NamedBucket' do
|
115
|
-
|
112
|
+
todo
|
116
113
|
end
|
117
114
|
|
118
115
|
specify 'can be saved by proxing through the NamedBucket it is associated with' do
|
119
|
-
|
116
|
+
todo
|
120
117
|
end
|
121
118
|
|
122
119
|
specify 'cannot be saved unless associated with a NamedBucket' do
|
123
|
-
|
120
|
+
todo
|
124
121
|
end
|
125
122
|
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
base = File.dirname(__FILE__)
|
2
|
+
require File.join(base, '../test_setup')
|
3
|
+
|
4
|
+
require 'rubygems'
|
5
|
+
require_gem 'FakeWeb'
|
6
|
+
|
7
|
+
context 'S33r Client' do
|
8
|
+
setup do
|
9
|
+
@base = File.dirname(__FILE__)
|
10
|
+
@client = Client.new(Testing::ACCESS_KEY, Testing::SECRET_ACCESS_KEY, :use_ssl => false, :dump_requests => true)
|
11
|
+
@client2 = Client.new(Testing::ACCESS_KEY, Testing::SECRET_ACCESS_KEY)
|
12
|
+
@bucket = 'testingtesting'
|
13
|
+
@url = url_join('http://', HOST, @bucket)
|
14
|
+
|
15
|
+
@plain_config_file = File.join(@base, '../files/client_config.yml')
|
16
|
+
@custom_config_file = File.join(@base, '../files/namedbucket_config.yml')
|
17
|
+
|
18
|
+
xml_file = File.join(@base, '../files/bucket_listing.xml')
|
19
|
+
@bucket_listing_xml = File.open(xml_file) { |f| f.read }
|
20
|
+
|
21
|
+
listbucket_response = Net::HTTPResponse.new('1.1', '200', 'OK')
|
22
|
+
listbucket_response.body = @bucket_listing_xml
|
23
|
+
|
24
|
+
FakeWeb.register_uri(@url, :status => 200, :response => listbucket_response)
|
25
|
+
end
|
26
|
+
|
27
|
+
specify 'should return use_ssl setting correctly' do
|
28
|
+
@client.use_ssl?.should.not.be true
|
29
|
+
@client2.use_ssl?.should.be true
|
30
|
+
end
|
31
|
+
|
32
|
+
specify 'should trap max_keys too high in bucket listing request' do
|
33
|
+
lambda { @client.list_bucket('duff', :max_keys => (BUCKET_LIST_MAX_MAX_KEYS + 1)) }.should.raise \
|
34
|
+
BucketListingMaxKeysError
|
35
|
+
end
|
36
|
+
|
37
|
+
specify 'should fetch bucket listing ok' do
|
38
|
+
resp, _ = @client.list_bucket(@bucket)
|
39
|
+
resp.ok?.should.be true
|
40
|
+
end
|
41
|
+
|
42
|
+
specify 'can be initialised from plain config file' do
|
43
|
+
c = Client.init(@plain_config_file)
|
44
|
+
c.aws_access_key.should.equal 'youraccesskey'
|
45
|
+
c.aws_secret_access_key.should.equal 'yoursecretkey'
|
46
|
+
end
|
47
|
+
|
48
|
+
specify 'should be able to convert paths to keys' do
|
49
|
+
todo
|
50
|
+
end
|
51
|
+
|
52
|
+
specify 'should attach BucketListing instance to ListBucketResult response' do
|
53
|
+
todo
|
54
|
+
end
|
55
|
+
|
56
|
+
specify 'should retain leading slashes on keys when constructing request URLs' do
|
57
|
+
todo
|
58
|
+
end
|
59
|
+
|
60
|
+
specify 'should recognise custom config variables passed to configuration file loader' do
|
61
|
+
_, _, _, custom = Client.load_config(@custom_config_file)
|
62
|
+
custom[:from_email].should.equal 'you@example.com'
|
63
|
+
custom[:to_email].should.equal 'me@example.com'
|
64
|
+
end
|
65
|
+
end
|
data/test/cases/spec_core.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
|
-
|
1
|
+
base = File.dirname(__FILE__)
|
2
|
+
require File.join(base, '../test_setup')
|
2
3
|
|
3
|
-
context '
|
4
|
+
context 'S33r core' do
|
4
5
|
|
5
6
|
setup do
|
6
7
|
@for_request_method = 'PUT'
|
@@ -22,7 +23,7 @@ context 'S3 core' do
|
|
22
23
|
"text/html\nThu, 17 Nov 2005 18:49:58 GMT\nx-amz-magic:abracadabra\n" +
|
23
24
|
"x-amz-meta-author:foo@bar.com\n/quotes/nelson"
|
24
25
|
@correct_signature = "jZNOcbfWmD/A/f3hSvVzXZjM2HU="
|
25
|
-
@correct_auth_header = "AWS #{
|
26
|
+
@correct_auth_header = "AWS #{Testing::ACCESS_KEY}:#{@correct_signature}"
|
26
27
|
|
27
28
|
@with_invalid_bucket_name = '/badbucket'
|
28
29
|
@with_invalid_bucket_name2 = 'badbucket/'
|
@@ -37,23 +38,23 @@ context 'S3 core' do
|
|
37
38
|
end
|
38
39
|
|
39
40
|
specify 'should generate correct signatures' do
|
40
|
-
generate_signature(
|
41
|
+
generate_signature(Testing::SECRET_ACCESS_KEY,
|
41
42
|
@correct_canonical_string).should.equal @correct_signature
|
42
43
|
end
|
43
44
|
|
44
45
|
specify 'should generate correct auth headers' do
|
45
46
|
generate_auth_header_value(@for_request_method, @for_request_path, @for_request_headers,
|
46
|
-
|
47
|
+
Testing::ACCESS_KEY, Testing::SECRET_ACCESS_KEY).should.equal @correct_auth_header
|
47
48
|
end
|
48
49
|
|
49
50
|
specify 'should not generate auth header if bad HTTP method passed' do
|
50
51
|
lambda { generate_auth_header_value('duff', nil, nil, nil, nil) }.should.raise \
|
51
|
-
|
52
|
+
MethodNotAvailable
|
52
53
|
end
|
53
54
|
|
54
55
|
specify 'should not generate auth header if required headers missing' do
|
55
56
|
lambda { generate_auth_header_value('PUT', '/', @for_incomplete_headers,
|
56
|
-
nil, nil) }.should.raise
|
57
|
+
nil, nil) }.should.raise MissingRequiredHeaders
|
57
58
|
end
|
58
59
|
|
59
60
|
specify 'when generating auth header, should allow addition of Date and Content-Type headers' do
|
@@ -68,7 +69,7 @@ context 'S3 core' do
|
|
68
69
|
|
69
70
|
specify 'should not generate canned ACL header if invalid canned ACL supplied' do
|
70
71
|
lambda { canned_acl_header('duff') }.should.raise \
|
71
|
-
|
72
|
+
UnsupportedCannedACL
|
72
73
|
end
|
73
74
|
|
74
75
|
specify 'should correctly add canned ACL headers' do
|
@@ -91,9 +92,9 @@ context 'S3 core' do
|
|
91
92
|
|
92
93
|
specify 'should recognise invalid bucket names' do
|
93
94
|
lambda { bucket_name_valid?(@with_invalid_bucket_name) }.should.raise \
|
94
|
-
|
95
|
+
MalformedBucketName
|
95
96
|
lambda { bucket_name_valid?(@with_invalid_bucket_name2) }.should.raise \
|
96
|
-
|
97
|
+
MalformedBucketName
|
97
98
|
end
|
98
99
|
|
99
100
|
specify 'should return empty string if generating querystring with no key/value pairs' do
|
@@ -123,8 +124,12 @@ context 'S3 core' do
|
|
123
124
|
end
|
124
125
|
|
125
126
|
specify 'should generate URLs with authentication parameters' do
|
126
|
-
s3_authenticated_url(
|
127
|
+
s3_authenticated_url(Testing::ACCESS_KEY, Testing::SECRET_ACCESS_KEY, 'quotes', 'nelson', \
|
127
128
|
1141889120).should.equal @correct_authenticated_url
|
128
129
|
end
|
130
|
+
|
131
|
+
specify 'should generate correct public URLs' do
|
132
|
+
todo
|
133
|
+
end
|
129
134
|
|
130
135
|
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
base = File.dirname(__FILE__)
|
2
|
+
require File.join(base, '../test_setup')
|
3
|
+
|
4
|
+
require 'rubygems'
|
5
|
+
require_gem 'FakeWeb'
|
6
|
+
|
7
|
+
context 'NamedBucket client' do
|
8
|
+
setup do
|
9
|
+
@base = File.dirname(__FILE__)
|
10
|
+
@config_filename = @base + '/../files/namedbucket_config.yml'
|
11
|
+
end
|
12
|
+
|
13
|
+
specify 'should keep a copy of the current bucket listing inside as a property' do
|
14
|
+
todo
|
15
|
+
end
|
16
|
+
|
17
|
+
specify 'should enable prefix, marker etc. to be reset from NamedBucket and refresh wrapped bucket listing object' do
|
18
|
+
todo
|
19
|
+
end
|
20
|
+
|
21
|
+
specify 'should be able to load config from a file' do
|
22
|
+
FakeWeb.register_uri('http://s3.amazonaws.com/nobucket', :status => 200)
|
23
|
+
client = NamedBucket.init(@config_filename)
|
24
|
+
|
25
|
+
client.aws_access_key.should.equal 'youraccesskey'
|
26
|
+
client.aws_secret_access_key.should.equal 'yoursecretkey'
|
27
|
+
client.bucket_name.should.equal 'nobucket'
|
28
|
+
client.strict?.should.be false
|
29
|
+
client.public_contents?.should.be true
|
30
|
+
client.use_ssl?.should.be false
|
31
|
+
end
|
32
|
+
end
|
data/test/cases/spec_sync.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
|
-
|
1
|
+
base = File.dirname(__FILE__)
|
2
|
+
require File.join(base, '../test_setup')
|
2
3
|
|
3
|
-
context '
|
4
|
+
context 'S33r sync methods' do
|
4
5
|
setup do
|
5
6
|
@base_dir = File.dirname(__FILE__)
|
6
7
|
@text_filename = @base_dir + '/../files/textfile.txt'
|
@@ -16,14 +17,14 @@ context 'S3 sync methods' do
|
|
16
17
|
end
|
17
18
|
|
18
19
|
specify 'should be able to map a directory structure to S3 bucket keys' do
|
19
|
-
|
20
|
+
todo
|
20
21
|
end
|
21
22
|
|
22
23
|
specify 'should return an array of local files to put to S3 based on differences between MD5 checksums' do
|
23
|
-
|
24
|
+
todo
|
24
25
|
end
|
25
26
|
|
26
27
|
specify 'should convert S3 bucket keys into a "virtual" directory and file structure' do
|
27
|
-
|
28
|
+
todo
|
28
29
|
end
|
29
30
|
end
|
data/test/cases/spec_xml.rb
CHANGED
@@ -0,0 +1,12 @@
|
|
1
|
+
aws_access_key: 'youraccesskey'
|
2
|
+
aws_secret_access_key: 'yoursecretkey'
|
3
|
+
## options for Client or NamedBucket instances
|
4
|
+
options:
|
5
|
+
strict: false
|
6
|
+
public_contents: true
|
7
|
+
use_ssl: false
|
8
|
+
default_bucket: 'nobucket'
|
9
|
+
## extensions used in your own program
|
10
|
+
custom:
|
11
|
+
to_email: 'me@example.com'
|
12
|
+
from_email: 'you@example.com'
|
@@ -3,18 +3,19 @@ require 'rubygems'
|
|
3
3
|
require_gem 'rspec'
|
4
4
|
|
5
5
|
require File.dirname(__FILE__) + '/../lib/s33r'
|
6
|
-
include
|
7
|
-
include
|
6
|
+
include S33r
|
7
|
+
include S33r::S33rException
|
8
|
+
include S33r::Sync
|
8
9
|
|
9
10
|
# set up some constants
|
10
|
-
module
|
11
|
+
module Testing
|
11
12
|
ACCESS_KEY = '44CF9590006BF252F707'
|
12
13
|
SECRET_ACCESS_KEY = 'OtxrzxIsfpFjA7SwPzILwy8Bw21TLhquhboDYROV'
|
13
14
|
end
|
14
15
|
|
15
|
-
# convenience for highlighting
|
16
|
-
def
|
17
|
-
fail
|
16
|
+
# convenience for highlighting tasks
|
17
|
+
def todo
|
18
|
+
fail
|
18
19
|
end
|
19
20
|
|
20
21
|
# clean newlines and tabs from XML to make comparisons easier
|
metadata
CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.0
|
|
3
3
|
specification_version: 1
|
4
4
|
name: s33r
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: "0.
|
7
|
-
date: 2006-
|
6
|
+
version: "0.3"
|
7
|
+
date: 2006-09-26 00:00:00 +01:00
|
8
8
|
summary: A library for accessing Amazon S3
|
9
9
|
require_paths:
|
10
10
|
- lib
|
@@ -30,21 +30,20 @@ authors:
|
|
30
30
|
- Elliot Smith
|
31
31
|
files:
|
32
32
|
- bin/s3cli.rb
|
33
|
-
- bin/config.yml
|
34
33
|
- lib/s33r
|
35
34
|
- lib/s33r.rb
|
36
35
|
- lib/s33r/sync.rb
|
37
36
|
- lib/s33r/client.rb
|
38
37
|
- lib/s33r/mimetypes.rb
|
39
|
-
- lib/s33r/
|
38
|
+
- lib/s33r/s33r_http.rb
|
40
39
|
- lib/s33r/bucket_listing.rb
|
41
|
-
- lib/s33r/s3_exception.rb
|
42
40
|
- lib/s33r/core.rb
|
43
41
|
- lib/s33r/named_bucket.rb
|
44
42
|
- lib/s33r/libxml_extensions.rb
|
43
|
+
- lib/s33r/s33r_exception.rb
|
45
44
|
- test/files
|
46
45
|
- test/test_bucket_setup.rb
|
47
|
-
- test/
|
46
|
+
- test/test_setup.rb
|
48
47
|
- test/cases
|
49
48
|
- test/files/wave.jpg
|
50
49
|
- test/files/textfile.txt
|
@@ -53,15 +52,68 @@ files:
|
|
53
52
|
- test/files/bucket_listing_broken.xml
|
54
53
|
- test/files/bucket_listing2.xml
|
55
54
|
- test/files/bucket_listing3.xml
|
55
|
+
- test/files/namedbucket_config.yml
|
56
|
+
- test/files/client_config.yml
|
56
57
|
- test/cases/spec_core.rb
|
57
58
|
- test/cases/spec_sync.rb
|
58
|
-
- test/cases/unit_client.rb
|
59
59
|
- test/cases/spec_bucket_listing.rb
|
60
|
-
- test/cases/unit_named_bucket.rb
|
61
60
|
- test/cases/spec_xml.rb
|
62
|
-
-
|
63
|
-
-
|
64
|
-
-
|
61
|
+
- test/cases/spec_client.rb
|
62
|
+
- test/cases/spec_namedbucket.rb
|
63
|
+
- html/created.rid
|
64
|
+
- html/rdoc-style.css
|
65
|
+
- html/files
|
66
|
+
- html/classes
|
67
|
+
- html/fr_file_index.html
|
68
|
+
- html/fr_class_index.html
|
69
|
+
- html/fr_method_index.html
|
70
|
+
- html/index.html
|
71
|
+
- html/files/README_txt.html
|
72
|
+
- html/files/MIT-LICENSE.html
|
73
|
+
- html/files/CHANGELOG.html
|
74
|
+
- html/files/lib
|
75
|
+
- html/files/lib/s33r_rb.html
|
76
|
+
- html/files/lib/s33r
|
77
|
+
- html/files/lib/s33r/sync_rb.html
|
78
|
+
- html/files/lib/s33r/client_rb.html
|
79
|
+
- html/files/lib/s33r/mimetypes_rb.html
|
80
|
+
- html/files/lib/s33r/s33r_http_rb.html
|
81
|
+
- html/files/lib/s33r/bucket_listing_rb.html
|
82
|
+
- html/files/lib/s33r/core_rb.html
|
83
|
+
- html/files/lib/s33r/named_bucket_rb.html
|
84
|
+
- html/files/lib/s33r/libxml_extensions_rb.html
|
85
|
+
- html/files/lib/s33r/s33r_exception_rb.html
|
86
|
+
- html/classes/XML.html
|
87
|
+
- html/classes/XML
|
88
|
+
- html/classes/Net.html
|
89
|
+
- html/classes/Net
|
90
|
+
- html/classes/MIME.html
|
91
|
+
- html/classes/MIME
|
92
|
+
- html/classes/S33r.html
|
93
|
+
- html/classes/S33r
|
94
|
+
- html/classes/XML/Node.html
|
95
|
+
- html/classes/XML/Document.html
|
96
|
+
- html/classes/Net/HTTPGenericRequest.html
|
97
|
+
- html/classes/Net/HTTPResponse.html
|
98
|
+
- html/classes/MIME/Types.html
|
99
|
+
- html/classes/MIME/InvalidContentType.html
|
100
|
+
- html/classes/MIME/Type.html
|
101
|
+
- html/classes/S33r/S33rException.html
|
102
|
+
- html/classes/S33r/S33rException
|
103
|
+
- html/classes/S33r/Sync.html
|
104
|
+
- html/classes/S33r/S3User.html
|
105
|
+
- html/classes/S33r/S3Object.html
|
106
|
+
- html/classes/S33r/NamedBucket.html
|
107
|
+
- html/classes/S33r/BucketListing.html
|
108
|
+
- html/classes/S33r/Client.html
|
109
|
+
- html/classes/S33r/S33rException/MissingResource.html
|
110
|
+
- html/classes/S33r/S33rException/InvalidBucketListing.html
|
111
|
+
- html/classes/S33r/S33rException/BucketListingMaxKeysError.html
|
112
|
+
- html/classes/S33r/S33rException/MalformedBucketName.html
|
113
|
+
- html/classes/S33r/S33rException/MissingRequiredHeaders.html
|
114
|
+
- html/classes/S33r/S33rException/MethodNotAvailable.html
|
115
|
+
- html/classes/S33r/S33rException/UnsupportedCannedACL.html
|
116
|
+
- html/classes/S33r/S33rException/UnsupportedHTTPMethod.html
|
65
117
|
test_files: []
|
66
118
|
|
67
119
|
rdoc_options: []
|