s33r 0.4.2 → 0.5
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/examples/cli/instant_download_server.rb +88 -0
- data/examples/cli/s3cli.rb +31 -52
- data/examples/cli/simple.rb +16 -6
- data/examples/fores33r/app/controllers/browser_controller.rb +12 -10
- data/examples/fores33r/app/helpers/application_helper.rb +2 -1
- data/examples/fores33r/app/views/browser/_upload.rhtml +1 -1
- data/examples/fores33r/app/views/browser/index.rhtml +4 -4
- data/examples/fores33r/config/environment.rb +5 -3
- data/examples/fores33r/log/development.log +2259 -0
- data/examples/fores33r/log/mongrel.log +59 -0
- data/examples/s3.yaml +2 -6
- data/lib/s33r/bucket.rb +103 -0
- data/lib/s33r/bucket_listing.rb +33 -76
- data/lib/s33r/client.rb +305 -446
- data/lib/s33r/networking.rb +197 -0
- data/lib/s33r/s33r_exception.rb +29 -18
- data/lib/s33r/s33r_http.rb +36 -18
- data/lib/s33r/s3_acl.rb +32 -52
- data/lib/s33r/s3_logging.rb +117 -0
- data/lib/s33r/s3_obj.rb +124 -69
- data/lib/s33r/utility.rb +447 -0
- data/test/cases/spec_acl.rb +10 -40
- data/test/cases/spec_bucket_listing.rb +12 -32
- data/test/cases/spec_logging.rb +47 -0
- data/test/cases/spec_networking.rb +11 -0
- data/test/cases/spec_s3_object.rb +44 -5
- data/test/cases/spec_utility.rb +264 -0
- data/test/files/acl.xml +0 -6
- data/test/files/config.yaml +5 -0
- data/test/files/logging_status_disabled.xml +3 -0
- data/test/files/logging_status_enabled.xml +7 -0
- data/test/test_setup.rb +7 -2
- metadata +16 -94
- data/examples/cli/acl_x.rb +0 -41
- data/examples/cli/logging_x.rb +0 -20
- data/examples/fores33r/README +0 -183
- data/html/classes/MIME.html +0 -120
- data/html/classes/MIME/InvalidContentType.html +0 -119
- data/html/classes/MIME/Type.html +0 -1173
- data/html/classes/MIME/Types.html +0 -566
- data/html/classes/Net.html +0 -108
- data/html/classes/Net/HTTPGenericRequest.html +0 -233
- data/html/classes/Net/HTTPResponse.html +0 -271
- data/html/classes/S33r.html +0 -986
- data/html/classes/S33r/BucketListing.html +0 -434
- data/html/classes/S33r/Client.html +0 -1575
- data/html/classes/S33r/LoggingResource.html +0 -222
- data/html/classes/S33r/NamedBucket.html +0 -693
- data/html/classes/S33r/OrderlyXmlMarkup.html +0 -165
- data/html/classes/S33r/S33rException.html +0 -124
- data/html/classes/S33r/S33rException/BucketListingMaxKeysError.html +0 -111
- data/html/classes/S33r/S33rException/BucketNotLogTargetable.html +0 -119
- data/html/classes/S33r/S33rException/InvalidBucketListing.html +0 -111
- data/html/classes/S33r/S33rException/InvalidPermission.html +0 -111
- data/html/classes/S33r/S33rException/InvalidS3GroupType.html +0 -111
- data/html/classes/S33r/S33rException/MalformedBucketName.html +0 -111
- data/html/classes/S33r/S33rException/MethodNotAvailable.html +0 -111
- data/html/classes/S33r/S33rException/MissingBucketName.html +0 -111
- data/html/classes/S33r/S33rException/MissingRequiredHeaders.html +0 -111
- data/html/classes/S33r/S33rException/MissingResource.html +0 -111
- data/html/classes/S33r/S33rException/S3FallenOver.html +0 -111
- data/html/classes/S33r/S33rException/TryingToPutEmptyResource.html +0 -117
- data/html/classes/S33r/S33rException/UnsupportedCannedACL.html +0 -111
- data/html/classes/S33r/S33rException/UnsupportedHTTPMethod.html +0 -111
- data/html/classes/S33r/S3ACL.html +0 -125
- data/html/classes/S33r/S3ACL/ACLDoc.html +0 -521
- data/html/classes/S33r/S3ACL/AmazonCustomer.html +0 -168
- data/html/classes/S33r/S3ACL/CanonicalUser.html +0 -212
- data/html/classes/S33r/S3ACL/Grant.html +0 -403
- data/html/classes/S33r/S3ACL/Grantee.html +0 -239
- data/html/classes/S33r/S3ACL/Group.html +0 -178
- data/html/classes/S33r/S3Object.html +0 -618
- data/html/classes/S33r/Sync.html +0 -152
- data/html/classes/XML.html +0 -202
- data/html/classes/XML/Document.html +0 -125
- data/html/classes/XML/Node.html +0 -124
- data/html/created.rid +0 -1
- data/html/files/CHANGELOG.html +0 -107
- data/html/files/MIT-LICENSE.html +0 -129
- data/html/files/README_txt.html +0 -259
- data/html/files/lib/s33r/bucket_listing_rb.html +0 -101
- data/html/files/lib/s33r/builder_rb.html +0 -108
- data/html/files/lib/s33r/client_rb.html +0 -111
- data/html/files/lib/s33r/core_rb.html +0 -113
- data/html/files/lib/s33r/libxml_extensions_rb.html +0 -101
- data/html/files/lib/s33r/libxml_loader_rb.html +0 -109
- data/html/files/lib/s33r/logging_rb.html +0 -108
- data/html/files/lib/s33r/mimetypes_rb.html +0 -120
- data/html/files/lib/s33r/named_bucket_rb.html +0 -101
- data/html/files/lib/s33r/s33r_exception_rb.html +0 -101
- data/html/files/lib/s33r/s33r_http_rb.html +0 -108
- data/html/files/lib/s33r/s3_acl_rb.html +0 -108
- data/html/files/lib/s33r/s3_obj_rb.html +0 -108
- data/html/files/lib/s33r/sync_rb.html +0 -101
- data/html/files/lib/s33r_rb.html +0 -101
- data/html/fr_class_index.html +0 -66
- data/html/fr_file_index.html +0 -44
- data/html/fr_method_index.html +0 -183
- data/html/index.html +0 -24
- data/html/rdoc-style.css +0 -208
- data/lib/s33r/core.rb +0 -296
- data/lib/s33r/logging.rb +0 -43
- data/lib/s33r/named_bucket.rb +0 -148
- data/lib/s33r/sync.rb +0 -13
- data/test/cases/spec_all_buckets.rb +0 -28
- data/test/cases/spec_client.rb +0 -101
- data/test/cases/spec_core.rb +0 -128
- data/test/cases/spec_namedbucket.rb +0 -46
- data/test/cases/spec_sync.rb +0 -34
- data/test/files/all_buckets.xml +0 -21
- data/test/files/client_config.yml +0 -5
- data/test/files/namedbucket_config.yml +0 -8
- data/test/files/namedbucket_config2.yml +0 -8
- data/test/test_bucket_setup.rb +0 -41
data/html/classes/XML/Node.html
DELETED
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
2
|
-
<!DOCTYPE html
|
|
3
|
-
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
4
|
-
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
5
|
-
|
|
6
|
-
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
7
|
-
<head>
|
|
8
|
-
<title>Class: XML::Node</title>
|
|
9
|
-
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
10
|
-
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
|
11
|
-
<link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
|
|
12
|
-
<script type="text/javascript">
|
|
13
|
-
// <![CDATA[
|
|
14
|
-
|
|
15
|
-
function popupCode( url ) {
|
|
16
|
-
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
function toggleCode( id ) {
|
|
20
|
-
if ( document.getElementById )
|
|
21
|
-
elem = document.getElementById( id );
|
|
22
|
-
else if ( document.all )
|
|
23
|
-
elem = eval( "document.all." + id );
|
|
24
|
-
else
|
|
25
|
-
return false;
|
|
26
|
-
|
|
27
|
-
elemStyle = elem.style;
|
|
28
|
-
|
|
29
|
-
if ( elemStyle.display != "block" ) {
|
|
30
|
-
elemStyle.display = "block"
|
|
31
|
-
} else {
|
|
32
|
-
elemStyle.display = "none"
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
return true;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
// Make codeblocks hidden by default
|
|
39
|
-
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
|
40
|
-
|
|
41
|
-
// ]]>
|
|
42
|
-
</script>
|
|
43
|
-
|
|
44
|
-
</head>
|
|
45
|
-
<body>
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
<div id="classHeader">
|
|
50
|
-
<table class="header-table">
|
|
51
|
-
<tr class="top-aligned-row">
|
|
52
|
-
<td><strong>Class</strong></td>
|
|
53
|
-
<td class="class-name-in-header">XML::Node</td>
|
|
54
|
-
</tr>
|
|
55
|
-
<tr class="top-aligned-row">
|
|
56
|
-
<td><strong>In:</strong></td>
|
|
57
|
-
<td>
|
|
58
|
-
<a href="../../files/lib/s33r/libxml_extensions_rb.html">
|
|
59
|
-
lib/s33r/libxml_extensions.rb
|
|
60
|
-
</a>
|
|
61
|
-
<br />
|
|
62
|
-
</td>
|
|
63
|
-
</tr>
|
|
64
|
-
|
|
65
|
-
<tr class="top-aligned-row">
|
|
66
|
-
<td><strong>Parent:</strong></td>
|
|
67
|
-
<td>
|
|
68
|
-
Object
|
|
69
|
-
</td>
|
|
70
|
-
</tr>
|
|
71
|
-
</table>
|
|
72
|
-
</div>
|
|
73
|
-
<!-- banner header -->
|
|
74
|
-
|
|
75
|
-
<div id="bodyContent">
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
<div id="contextContent">
|
|
80
|
-
|
|
81
|
-
<div id="description">
|
|
82
|
-
<p>
|
|
83
|
-
Make custom methods accessible to <a href="Node.html">Node</a> class.
|
|
84
|
-
</p>
|
|
85
|
-
|
|
86
|
-
</div>
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
</div>
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
</div>
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
<!-- if includes -->
|
|
96
|
-
<div id="includes">
|
|
97
|
-
<h3 class="section-bar">Included Modules</h3>
|
|
98
|
-
|
|
99
|
-
<div id="includes-list">
|
|
100
|
-
<span class="include-name"><a href="../XML.html">XML</a></span>
|
|
101
|
-
</div>
|
|
102
|
-
</div>
|
|
103
|
-
|
|
104
|
-
<div id="section">
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
<!-- if method_list -->
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
</div>
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
<div id="validator-badges">
|
|
120
|
-
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
|
121
|
-
</div>
|
|
122
|
-
|
|
123
|
-
</body>
|
|
124
|
-
</html>
|
data/html/created.rid
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
Wed Jan 03 12:25:30 GMT 2007
|
data/html/files/CHANGELOG.html
DELETED
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
2
|
-
<!DOCTYPE html
|
|
3
|
-
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
4
|
-
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
5
|
-
|
|
6
|
-
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
7
|
-
<head>
|
|
8
|
-
<title>File: CHANGELOG</title>
|
|
9
|
-
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
10
|
-
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
|
11
|
-
<link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
|
|
12
|
-
<script type="text/javascript">
|
|
13
|
-
// <![CDATA[
|
|
14
|
-
|
|
15
|
-
function popupCode( url ) {
|
|
16
|
-
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
function toggleCode( id ) {
|
|
20
|
-
if ( document.getElementById )
|
|
21
|
-
elem = document.getElementById( id );
|
|
22
|
-
else if ( document.all )
|
|
23
|
-
elem = eval( "document.all." + id );
|
|
24
|
-
else
|
|
25
|
-
return false;
|
|
26
|
-
|
|
27
|
-
elemStyle = elem.style;
|
|
28
|
-
|
|
29
|
-
if ( elemStyle.display != "block" ) {
|
|
30
|
-
elemStyle.display = "block"
|
|
31
|
-
} else {
|
|
32
|
-
elemStyle.display = "none"
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
return true;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
// Make codeblocks hidden by default
|
|
39
|
-
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
|
40
|
-
|
|
41
|
-
// ]]>
|
|
42
|
-
</script>
|
|
43
|
-
|
|
44
|
-
</head>
|
|
45
|
-
<body>
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
<div id="fileHeader">
|
|
50
|
-
<h1>CHANGELOG</h1>
|
|
51
|
-
<table class="header-table">
|
|
52
|
-
<tr class="top-aligned-row">
|
|
53
|
-
<td><strong>Path:</strong></td>
|
|
54
|
-
<td>CHANGELOG
|
|
55
|
-
</td>
|
|
56
|
-
</tr>
|
|
57
|
-
<tr class="top-aligned-row">
|
|
58
|
-
<td><strong>Last Update:</strong></td>
|
|
59
|
-
<td>Wed Jan 03 11:35:17 GMT 2007</td>
|
|
60
|
-
</tr>
|
|
61
|
-
</table>
|
|
62
|
-
</div>
|
|
63
|
-
<!-- banner header -->
|
|
64
|
-
|
|
65
|
-
<div id="bodyContent">
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
<div id="contextContent">
|
|
70
|
-
|
|
71
|
-
<div id="description">
|
|
72
|
-
<p>
|
|
73
|
-
Commit test
|
|
74
|
-
</p>
|
|
75
|
-
|
|
76
|
-
</div>
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
</div>
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
</div>
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
<!-- if includes -->
|
|
86
|
-
|
|
87
|
-
<div id="section">
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
<!-- if method_list -->
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
</div>
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
<div id="validator-badges">
|
|
103
|
-
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
|
104
|
-
</div>
|
|
105
|
-
|
|
106
|
-
</body>
|
|
107
|
-
</html>
|
data/html/files/MIT-LICENSE.html
DELETED
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
2
|
-
<!DOCTYPE html
|
|
3
|
-
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
4
|
-
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
5
|
-
|
|
6
|
-
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
7
|
-
<head>
|
|
8
|
-
<title>File: MIT-LICENSE</title>
|
|
9
|
-
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
10
|
-
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
|
11
|
-
<link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
|
|
12
|
-
<script type="text/javascript">
|
|
13
|
-
// <![CDATA[
|
|
14
|
-
|
|
15
|
-
function popupCode( url ) {
|
|
16
|
-
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
function toggleCode( id ) {
|
|
20
|
-
if ( document.getElementById )
|
|
21
|
-
elem = document.getElementById( id );
|
|
22
|
-
else if ( document.all )
|
|
23
|
-
elem = eval( "document.all." + id );
|
|
24
|
-
else
|
|
25
|
-
return false;
|
|
26
|
-
|
|
27
|
-
elemStyle = elem.style;
|
|
28
|
-
|
|
29
|
-
if ( elemStyle.display != "block" ) {
|
|
30
|
-
elemStyle.display = "block"
|
|
31
|
-
} else {
|
|
32
|
-
elemStyle.display = "none"
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
return true;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
// Make codeblocks hidden by default
|
|
39
|
-
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
|
40
|
-
|
|
41
|
-
// ]]>
|
|
42
|
-
</script>
|
|
43
|
-
|
|
44
|
-
</head>
|
|
45
|
-
<body>
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
<div id="fileHeader">
|
|
50
|
-
<h1>MIT-LICENSE</h1>
|
|
51
|
-
<table class="header-table">
|
|
52
|
-
<tr class="top-aligned-row">
|
|
53
|
-
<td><strong>Path:</strong></td>
|
|
54
|
-
<td>MIT-LICENSE
|
|
55
|
-
</td>
|
|
56
|
-
</tr>
|
|
57
|
-
<tr class="top-aligned-row">
|
|
58
|
-
<td><strong>Last Update:</strong></td>
|
|
59
|
-
<td>Wed Jan 03 11:28:02 GMT 2007</td>
|
|
60
|
-
</tr>
|
|
61
|
-
</table>
|
|
62
|
-
</div>
|
|
63
|
-
<!-- banner header -->
|
|
64
|
-
|
|
65
|
-
<div id="bodyContent">
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
<div id="contextContent">
|
|
70
|
-
|
|
71
|
-
<div id="description">
|
|
72
|
-
<p>
|
|
73
|
-
Copyright (C) 2006 Elliot Smith
|
|
74
|
-
</p>
|
|
75
|
-
<p>
|
|
76
|
-
Permission is hereby granted, free of charge, to any person obtaining a
|
|
77
|
-
copy of this software and associated documentation files (the
|
|
78
|
-
"Software"), to deal in the Software without restriction,
|
|
79
|
-
including without limitation the rights to use, copy, modify, merge,
|
|
80
|
-
publish, distribute, sublicense, and/or sell copies of the Software, and to
|
|
81
|
-
permit persons to whom the Software is furnished to do so, subject to the
|
|
82
|
-
following conditions:
|
|
83
|
-
</p>
|
|
84
|
-
<p>
|
|
85
|
-
The above copyright notice and this permission notice shall be included in
|
|
86
|
-
all copies or substantial portions of the Software.
|
|
87
|
-
</p>
|
|
88
|
-
<p>
|
|
89
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
90
|
-
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
91
|
-
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
|
|
92
|
-
NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
|
93
|
-
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
|
|
94
|
-
OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
|
|
95
|
-
USE OR OTHER DEALINGS IN THE SOFTWARE.
|
|
96
|
-
</p>
|
|
97
|
-
|
|
98
|
-
</div>
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
</div>
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
</div>
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
<!-- if includes -->
|
|
108
|
-
|
|
109
|
-
<div id="section">
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
<!-- if method_list -->
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
</div>
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
<div id="validator-badges">
|
|
125
|
-
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
|
126
|
-
</div>
|
|
127
|
-
|
|
128
|
-
</body>
|
|
129
|
-
</html>
|
data/html/files/README_txt.html
DELETED
|
@@ -1,259 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0" encoding="iso-8859-1"?>
|
|
2
|
-
<!DOCTYPE html
|
|
3
|
-
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
4
|
-
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
5
|
-
|
|
6
|
-
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
7
|
-
<head>
|
|
8
|
-
<title>File: README.txt</title>
|
|
9
|
-
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
|
10
|
-
<meta http-equiv="Content-Script-Type" content="text/javascript" />
|
|
11
|
-
<link rel="stylesheet" href=".././rdoc-style.css" type="text/css" media="screen" />
|
|
12
|
-
<script type="text/javascript">
|
|
13
|
-
// <![CDATA[
|
|
14
|
-
|
|
15
|
-
function popupCode( url ) {
|
|
16
|
-
window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
function toggleCode( id ) {
|
|
20
|
-
if ( document.getElementById )
|
|
21
|
-
elem = document.getElementById( id );
|
|
22
|
-
else if ( document.all )
|
|
23
|
-
elem = eval( "document.all." + id );
|
|
24
|
-
else
|
|
25
|
-
return false;
|
|
26
|
-
|
|
27
|
-
elemStyle = elem.style;
|
|
28
|
-
|
|
29
|
-
if ( elemStyle.display != "block" ) {
|
|
30
|
-
elemStyle.display = "block"
|
|
31
|
-
} else {
|
|
32
|
-
elemStyle.display = "none"
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
return true;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
// Make codeblocks hidden by default
|
|
39
|
-
document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
|
|
40
|
-
|
|
41
|
-
// ]]>
|
|
42
|
-
</script>
|
|
43
|
-
|
|
44
|
-
</head>
|
|
45
|
-
<body>
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
<div id="fileHeader">
|
|
50
|
-
<h1>README.txt</h1>
|
|
51
|
-
<table class="header-table">
|
|
52
|
-
<tr class="top-aligned-row">
|
|
53
|
-
<td><strong>Path:</strong></td>
|
|
54
|
-
<td>README.txt
|
|
55
|
-
</td>
|
|
56
|
-
</tr>
|
|
57
|
-
<tr class="top-aligned-row">
|
|
58
|
-
<td><strong>Last Update:</strong></td>
|
|
59
|
-
<td>Wed Jan 03 11:28:02 GMT 2007</td>
|
|
60
|
-
</tr>
|
|
61
|
-
</table>
|
|
62
|
-
</div>
|
|
63
|
-
<!-- banner header -->
|
|
64
|
-
|
|
65
|
-
<div id="bodyContent">
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
<div id="contextContent">
|
|
70
|
-
|
|
71
|
-
<div id="description">
|
|
72
|
-
<h1>Introduction</h1>
|
|
73
|
-
<p>
|
|
74
|
-
This is my go at a Ruby library for talking to Amazon’s S3 service
|
|
75
|
-
via REST. It is based on the sample Ruby code for S3 provided by Amazon,
|
|
76
|
-
but has gone a long way beyond it now. Most of the remaining Amazon code is
|
|
77
|
-
now in core.rb; the rest is mine.
|
|
78
|
-
</p>
|
|
79
|
-
<p>
|
|
80
|
-
To use it from inside your Ruby script (as a gem):
|
|
81
|
-
</p>
|
|
82
|
-
<pre>
|
|
83
|
-
require 'rubygems'
|
|
84
|
-
require_gem 's33r'
|
|
85
|
-
</pre>
|
|
86
|
-
<p>
|
|
87
|
-
Alternatively, just load lib/s33r.rb.
|
|
88
|
-
</p>
|
|
89
|
-
<p>
|
|
90
|
-
By the way, I’ve tested this on Linux, but not on Windows or Mac.
|
|
91
|
-
</p>
|
|
92
|
-
<h1>Features</h1>
|
|
93
|
-
<p>
|
|
94
|
-
Supports the following aspects of S3:
|
|
95
|
-
</p>
|
|
96
|
-
<ul>
|
|
97
|
-
<li>List all buckets
|
|
98
|
-
|
|
99
|
-
</li>
|
|
100
|
-
<li>Get bucket
|
|
101
|
-
|
|
102
|
-
</li>
|
|
103
|
-
<li>Create bucket
|
|
104
|
-
|
|
105
|
-
</li>
|
|
106
|
-
<li>Delete bucket
|
|
107
|
-
|
|
108
|
-
</li>
|
|
109
|
-
<li>Put resource into bucket (text or file)
|
|
110
|
-
|
|
111
|
-
</li>
|
|
112
|
-
<li>Delete resource from bucket
|
|
113
|
-
|
|
114
|
-
</li>
|
|
115
|
-
<li>Set ACL for a bucket or resource
|
|
116
|
-
|
|
117
|
-
</li>
|
|
118
|
-
<li>Turn on logging for a bucket or resource
|
|
119
|
-
|
|
120
|
-
</li>
|
|
121
|
-
</ul>
|
|
122
|
-
<h1>Requirements</h1>
|
|
123
|
-
<p>
|
|
124
|
-
To get the most from s33r, you will need:
|
|
125
|
-
</p>
|
|
126
|
-
<ul>
|
|
127
|
-
<li>Ruby 1.8.4 (this is what I developed with, but it may work OK with older
|
|
128
|
-
versions)
|
|
129
|
-
|
|
130
|
-
</li>
|
|
131
|
-
<li>libxml (REQUIRED: s33r relies on this for parsing responses from S3)
|
|
132
|
-
|
|
133
|
-
</li>
|
|
134
|
-
<li>builder (REQUIRED)
|
|
135
|
-
|
|
136
|
-
</li>
|
|
137
|
-
<li>openssl (you can use s33r without this, but obviously you won’t be
|
|
138
|
-
able to encrypt connections)
|
|
139
|
-
|
|
140
|
-
</li>
|
|
141
|
-
<li>rspec (if you want to run the unit tests)
|
|
142
|
-
|
|
143
|
-
</li>
|
|
144
|
-
<li>fakeweb (to run tests)
|
|
145
|
-
|
|
146
|
-
</li>
|
|
147
|
-
</ul>
|
|
148
|
-
<h1>Basic usage</h1>
|
|
149
|
-
<ul>
|
|
150
|
-
<li>Set up an Amazon S3 account at <a
|
|
151
|
-
href="http://amazon.com/s3">amazon.com/s3</a>.
|
|
152
|
-
|
|
153
|
-
</li>
|
|
154
|
-
<li>Checkout the s33r from the repository using <tt>svn checkout
|
|
155
|
-
svn://rubyforge.org/var/svn/s33r/trunk s33r</tt>.
|
|
156
|
-
|
|
157
|
-
</li>
|
|
158
|
-
<li>Connect into the new directory made by checking out the code (s33r).
|
|
159
|
-
|
|
160
|
-
</li>
|
|
161
|
-
<li>Copy the sample configuration file (test/files/client_config.yml) to
|
|
162
|
-
somewhere on your machine (e.g. /home/you/.s33r).
|
|
163
|
-
|
|
164
|
-
</li>
|
|
165
|
-
<li>Edit the file, replacing the sample aws_access_key and
|
|
166
|
-
aws_secret_access_key with your settings.
|
|
167
|
-
|
|
168
|
-
</li>
|
|
169
|
-
<li>Fire up irb.
|
|
170
|
-
|
|
171
|
-
</li>
|
|
172
|
-
<li>Try the following code:
|
|
173
|
-
|
|
174
|
-
<pre>
|
|
175
|
-
require_gem 's33r'
|
|
176
|
-
include S33r
|
|
177
|
-
# initialise a client instance from a config file
|
|
178
|
-
# (see the sample in examples/s3.yaml)
|
|
179
|
-
client = Client.init('/home/you/.s33r')
|
|
180
|
-
# create a bucket called 'some-outlandish-name'
|
|
181
|
-
client.create_bucket('some-outlandish-name')
|
|
182
|
-
# show the contents of the bucket
|
|
183
|
-
client.list_buckets.body
|
|
184
|
-
# put something into the bucket
|
|
185
|
-
c.put_file('somefile.jpg', 'some-outlandish-name')
|
|
186
|
-
</pre>
|
|
187
|
-
</li>
|
|
188
|
-
</ul>
|
|
189
|
-
<p>
|
|
190
|
-
Note that the simple Client class is not particularly sophisticated and
|
|
191
|
-
returns raw requests for some methods. I tend to use NamedBucket instead,
|
|
192
|
-
which provides a simplified interface to a single bucket. This saves having
|
|
193
|
-
to pass the bucket name to every method call, and parses bucket listings
|
|
194
|
-
into an object representation.
|
|
195
|
-
</p>
|
|
196
|
-
<h1>Examples</h1>
|
|
197
|
-
<h2>Command line client</h2>
|
|
198
|
-
<p>
|
|
199
|
-
If you want to see a full example program which uses the library, have a
|
|
200
|
-
look at examples/cli/s3cli.rb. This is a simple command line client which
|
|
201
|
-
you can use to post a file to S3 and email a link to the file to someone.
|
|
202
|
-
Useful for sending big files to people without clogging their email inbox
|
|
203
|
-
with enormous files. It is also intended as a demonstration of how to use
|
|
204
|
-
the library. Full instructions are included at the top of the file.
|
|
205
|
-
</p>
|
|
206
|
-
<h2>Rails application</h2>
|
|
207
|
-
<p>
|
|
208
|
-
examples/fores33r contains a Rails application which makes use of the <a
|
|
209
|
-
href="../classes/S33r.html">S33r</a> library. It will display a bucket list
|
|
210
|
-
and the contents of individual buckets. You can upload files to your
|
|
211
|
-
buckets using it.
|
|
212
|
-
</p>
|
|
213
|
-
<p>
|
|
214
|
-
Before use, you will need to configure it by editing the file
|
|
215
|
-
examples/s3.yaml (so it knows your Amazon S3 keys) and copying it into the
|
|
216
|
-
config folder.
|
|
217
|
-
</p>
|
|
218
|
-
<p>
|
|
219
|
-
This has been kept deliberately simple, and doesn’t provide any
|
|
220
|
-
access control or logging management.
|
|
221
|
-
</p>
|
|
222
|
-
<h1>Credits</h1>
|
|
223
|
-
<p>
|
|
224
|
-
Thanks for bug reports to: Keaka (<a
|
|
225
|
-
href="http://keakaj.com/products.htm">keakaj.com/products.htm</a>)
|
|
226
|
-
</p>
|
|
227
|
-
|
|
228
|
-
</div>
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
</div>
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
</div>
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
<!-- if includes -->
|
|
238
|
-
|
|
239
|
-
<div id="section">
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
<!-- if method_list -->
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
</div>
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
<div id="validator-badges">
|
|
255
|
-
<p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
|
|
256
|
-
</div>
|
|
257
|
-
|
|
258
|
-
</body>
|
|
259
|
-
</html>
|