aws-sdk 1.4.1 → 1.5.0
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/.yardopts +0 -1
- data/lib/aws/api_config/AutoScaling-2011-01-01.yml +772 -544
- data/lib/aws/api_config/CloudFormation-2010-05-15.yml +284 -185
- data/lib/aws/api_config/DynamoDB-2011-12-05.yml +458 -738
- data/lib/aws/api_config/EC2-2011-12-15.yml +3502 -2653
- data/lib/aws/api_config/ELB-2011-08-15.yml +484 -352
- data/lib/aws/api_config/IAM-2010-05-08.yml +899 -711
- data/lib/aws/api_config/SNS-2010-03-31.yml +235 -167
- data/lib/aws/api_config/SQS-2011-10-01.yml +290 -251
- data/lib/aws/api_config/STS-2011-06-15.yml +35 -41
- data/lib/aws/api_config/SimpleDB-2009-04-15.yml +290 -263
- data/lib/aws/api_config/SimpleEmailService-2010-12-01.yml +144 -130
- data/lib/aws/api_config/SimpleWorkflow-2012-01-25.yml +697 -1139
- data/lib/aws/auto_scaling/activity_collection.rb +1 -1
- data/lib/aws/auto_scaling/client.rb +724 -9
- data/lib/aws/auto_scaling/errors.rb +1 -5
- data/lib/aws/auto_scaling/group.rb +1 -1
- data/lib/aws/auto_scaling/group_collection.rb +1 -1
- data/lib/aws/auto_scaling/instance_collection.rb +1 -1
- data/lib/aws/auto_scaling/launch_configuration.rb +1 -1
- data/lib/aws/auto_scaling/launch_configuration_collection.rb +1 -1
- data/lib/aws/auto_scaling/notification_configuration_collection.rb +1 -1
- data/lib/aws/auto_scaling/request.rb +1 -2
- data/lib/aws/auto_scaling/scaling_policy_collection.rb +1 -1
- data/lib/aws/auto_scaling/scheduled_action_collection.rb +3 -3
- data/lib/aws/auto_scaling/tag_collection.rb +1 -1
- data/lib/aws/cloud_formation.rb +1 -18
- data/lib/aws/cloud_formation/client.rb +314 -8
- data/lib/aws/cloud_formation/errors.rb +1 -5
- data/lib/aws/cloud_formation/request.rb +1 -2
- data/lib/aws/cloud_formation/stack.rb +4 -3
- data/lib/aws/cloud_formation/stack_collection.rb +2 -2
- data/lib/aws/cloud_formation/stack_resource_collection.rb +1 -1
- data/lib/aws/cloud_formation/stack_resource_summary_collection.rb +2 -2
- data/lib/aws/cloud_formation/stack_summary_collection.rb +1 -1
- data/lib/aws/core.rb +29 -14
- data/lib/aws/core/async_handle.rb +11 -12
- data/lib/aws/core/client.rb +112 -102
- data/lib/aws/core/client/query_json.rb +110 -0
- data/lib/aws/core/client/query_xml.rb +122 -0
- data/lib/aws/core/data.rb +242 -0
- data/lib/aws/core/http/request.rb +7 -4
- data/lib/aws/core/lazy_error_classes.rb +60 -38
- data/lib/aws/core/option_grammar.rb +1 -0
- data/lib/aws/core/policy.rb +2 -1
- data/lib/aws/core/resource.rb +38 -33
- data/lib/aws/core/response.rb +109 -44
- data/lib/aws/core/signature/version_2.rb +42 -0
- data/lib/aws/core/signature/version_3.rb +73 -0
- data/lib/aws/core/signature/version_3_http.rb +72 -0
- data/lib/aws/core/signature/version_4.rb +138 -0
- data/lib/aws/core/uri_escape.rb +6 -9
- data/lib/aws/core/xml/frame.rb +242 -0
- data/lib/aws/core/xml/frame_stack.rb +85 -0
- data/lib/aws/core/xml/grammar.rb +299 -0
- data/lib/aws/core/xml/parser.rb +70 -0
- data/lib/aws/core/xml/root_frame.rb +65 -0
- data/lib/aws/core/{configured_xml_grammars.rb → xml/sax_handlers/libxml.rb} +22 -20
- data/lib/aws/core/xml/sax_handlers/nokogiri.rb +55 -0
- data/lib/aws/core/{authorize_with_session_token.rb → xml/sax_handlers/ox.rb} +19 -7
- data/lib/aws/core/{configured_option_grammars.rb → xml/sax_handlers/rexml.rb} +22 -23
- data/lib/aws/core/xml/stub.rb +123 -0
- data/lib/aws/dynamo_db/batch_get.rb +1 -1
- data/lib/aws/dynamo_db/client.rb +796 -14
- data/lib/aws/dynamo_db/errors.rb +1 -38
- data/lib/aws/dynamo_db/item_collection.rb +29 -28
- data/lib/aws/dynamo_db/request.rb +3 -53
- data/lib/aws/dynamo_db/table.rb +6 -2
- data/lib/aws/ec2/attachment.rb +1 -1
- data/lib/aws/ec2/client.rb +3954 -9
- data/lib/aws/ec2/dhcp_options.rb +3 -3
- data/lib/aws/ec2/errors.rb +10 -4
- data/lib/aws/ec2/instance.rb +7 -6
- data/lib/aws/ec2/instance_collection.rb +2 -2
- data/lib/aws/ec2/key_pair_collection.rb +3 -3
- data/lib/aws/ec2/network_acl.rb +4 -2
- data/lib/aws/ec2/network_acl/entry.rb +10 -10
- data/lib/aws/ec2/network_interface.rb +2 -3
- data/lib/aws/ec2/network_interface/attachment.rb +8 -8
- data/lib/aws/ec2/permission_collection.rb +3 -3
- data/lib/aws/ec2/request.rb +1 -3
- data/lib/aws/ec2/resource_tag_collection.rb +4 -8
- data/lib/aws/ec2/route_table.rb +3 -2
- data/lib/aws/ec2/route_table/route.rb +7 -7
- data/lib/aws/ec2/security_group.rb +2 -2
- data/lib/aws/ec2/security_group/egress_ip_permission_collection.rb +16 -5
- data/lib/aws/ec2/security_group/ingress_ip_permission_collection.rb +4 -3
- data/lib/aws/ec2/security_group/ip_permission.rb +1 -2
- data/lib/aws/ec2/snapshot_collection.rb +6 -3
- data/lib/aws/ec2/subnet.rb +1 -1
- data/lib/aws/ec2/volume.rb +1 -3
- data/lib/aws/ec2/volume_collection.rb +2 -0
- data/lib/aws/elb/availability_zone_collection.rb +2 -2
- data/lib/aws/elb/backend_server_policy_collection.rb +1 -1
- data/lib/aws/elb/client.rb +513 -9
- data/lib/aws/elb/errors.rb +2 -6
- data/lib/aws/elb/instance_collection.rb +2 -2
- data/lib/aws/elb/request.rb +1 -1
- data/lib/aws/errors.rb +61 -74
- data/lib/aws/iam.rb +2 -3
- data/lib/aws/iam/client.rb +1178 -10
- data/lib/aws/iam/collection.rb +2 -1
- data/lib/aws/iam/errors.rb +1 -6
- data/lib/aws/iam/group.rb +8 -9
- data/lib/aws/iam/request.rb +1 -1
- data/lib/aws/iam/server_certificate_collection.rb +8 -5
- data/lib/aws/iam/signing_certificate.rb +1 -1
- data/lib/aws/iam/user.rb +2 -2
- data/lib/aws/iam/user_policy.rb +3 -2
- data/lib/aws/rails.rb +1 -2
- data/lib/aws/record.rb +3 -3
- data/lib/aws/record/abstract_base.rb +0 -3
- data/lib/aws/record/attributes.rb +7 -7
- data/lib/aws/record/model.rb +19 -19
- data/lib/aws/record/model/finder_methods.rb +7 -7
- data/lib/aws/s3/bucket.rb +7 -2
- data/lib/aws/s3/client.rb +391 -398
- data/lib/aws/s3/client/xml.rb +44 -71
- data/lib/aws/s3/data_options.rb +3 -2
- data/lib/aws/s3/errors.rb +8 -11
- data/lib/aws/s3/multipart_upload_collection.rb +1 -3
- data/lib/aws/s3/object_collection.rb +2 -1
- data/lib/aws/s3/object_metadata.rb +2 -2
- data/lib/aws/s3/paginated_collection.rb +2 -2
- data/lib/aws/s3/prefix_and_delimiter_collection.rb +1 -1
- data/lib/aws/s3/presigned_post.rb +18 -17
- data/lib/aws/s3/request.rb +4 -3
- data/lib/aws/s3/s3_object.rb +8 -10
- data/lib/aws/simple_db/attribute.rb +2 -2
- data/lib/aws/simple_db/attribute_collection.rb +14 -4
- data/lib/aws/simple_db/client.rb +313 -14
- data/lib/aws/simple_db/domain.rb +1 -1
- data/lib/aws/simple_db/domain_collection.rb +4 -4
- data/lib/aws/simple_db/domain_metadata.rb +1 -1
- data/lib/aws/simple_db/errors.rb +14 -2
- data/lib/aws/simple_db/expect_condition_option.rb +1 -1
- data/lib/aws/simple_db/item.rb +1 -1
- data/lib/aws/simple_db/item_collection.rb +9 -9
- data/lib/aws/simple_db/item_data.rb +9 -6
- data/lib/aws/simple_db/request.rb +1 -1
- data/lib/aws/simple_email_service.rb +8 -7
- data/lib/aws/simple_email_service/client.rb +174 -9
- data/lib/aws/simple_email_service/email_address_collection.rb +0 -1
- data/lib/aws/simple_email_service/errors.rb +1 -5
- data/lib/aws/simple_email_service/quotas.rb +8 -6
- data/lib/aws/simple_email_service/request.rb +7 -1
- data/lib/aws/simple_workflow/client.rb +1383 -6
- data/lib/aws/simple_workflow/decision_task.rb +1 -3
- data/lib/aws/simple_workflow/errors.rb +1 -38
- data/lib/aws/simple_workflow/history_event_collection.rb +2 -2
- data/lib/aws/simple_workflow/request.rb +5 -49
- data/lib/aws/simple_workflow/type.rb +1 -1
- data/lib/aws/simple_workflow/type_collection.rb +4 -3
- data/lib/aws/simple_workflow/workflow_execution_collection.rb +2 -2
- data/lib/aws/sns/client.rb +345 -9
- data/lib/aws/sns/errors.rb +1 -5
- data/lib/aws/sns/request.rb +1 -2
- data/lib/aws/sns/subscription_collection.rb +2 -2
- data/lib/aws/sns/topic.rb +15 -14
- data/lib/aws/sns/topic_collection.rb +1 -1
- data/lib/aws/sqs/client.rb +334 -9
- data/lib/aws/sqs/errors.rb +1 -6
- data/lib/aws/sqs/queue.rb +20 -21
- data/lib/aws/sqs/queue_collection.rb +3 -3
- data/lib/aws/sqs/request.rb +2 -2
- data/lib/aws/sts.rb +8 -10
- data/lib/aws/sts/client.rb +67 -10
- data/lib/aws/sts/errors.rb +1 -5
- data/lib/aws/sts/request.rb +1 -1
- data/lib/user.rb +49 -0
- metadata +21 -28
- data/lib/aws/auto_scaling/client/xml.rb +0 -32
- data/lib/aws/cloud_formation/client/xml.rb +0 -32
- data/lib/aws/core/api_config.rb +0 -44
- data/lib/aws/core/authorize_v2.rb +0 -39
- data/lib/aws/core/authorize_v3.rb +0 -38
- data/lib/aws/core/authorize_v4.rb +0 -149
- data/lib/aws/core/configured_client_methods.rb +0 -76
- data/lib/aws/core/configured_grammars.rb +0 -63
- data/lib/aws/core/configured_json_client_methods.rb +0 -74
- data/lib/aws/core/ignore_result_element.rb +0 -34
- data/lib/aws/core/json_client.rb +0 -41
- data/lib/aws/core/xml_grammar.rb +0 -957
- data/lib/aws/ec2/client/xml.rb +0 -175
- data/lib/aws/elb/client/xml.rb +0 -33
- data/lib/aws/elb/listener_spec.rb +0 -14
- data/lib/aws/iam/client/xml.rb +0 -34
- data/lib/aws/simple_db/client/options.rb +0 -32
- data/lib/aws/simple_db/client/xml.rb +0 -63
- data/lib/aws/simple_email_service/client/xml.rb +0 -34
- data/lib/aws/sns/client/xml.rb +0 -34
- data/lib/aws/sqs/client/xml.rb +0 -33
- data/lib/aws/sts/client/xml.rb +0 -34
data/lib/aws/s3/client/xml.rb
CHANGED
|
@@ -18,69 +18,37 @@ module AWS
|
|
|
18
18
|
# @private
|
|
19
19
|
module XML
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
BaseGrammar = Core::XML::Grammar.new({}, :inflect_rename => true)
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
def self.included(mod)
|
|
26
|
-
mod.module_eval do
|
|
27
|
-
element "CommonPrefixes" do
|
|
28
|
-
collect_values
|
|
29
|
-
format_value {|value| value.prefix }
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
ListBuckets = Core::XmlGrammar.customize do
|
|
23
|
+
ListBuckets = BaseGrammar.customize do
|
|
37
24
|
element "Buckets" do
|
|
38
|
-
|
|
39
|
-
collect_values
|
|
40
|
-
end
|
|
41
|
-
format_value { |value| super(value.bucket) }
|
|
25
|
+
list "Bucket"
|
|
42
26
|
end
|
|
43
27
|
end
|
|
44
28
|
|
|
45
|
-
GetBucketAcl = GetObjectAcl =
|
|
46
|
-
wrapper(:acl,
|
|
47
|
-
:for => ["Owner",
|
|
48
|
-
"AccessControlList"]) do
|
|
49
|
-
construct_value { AccessControlList.new }
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
element "Owner" do
|
|
53
|
-
construct_value { AccessControlList::Owner.new }
|
|
54
|
-
end
|
|
55
|
-
|
|
29
|
+
GetBucketAcl = GetObjectAcl = BaseGrammar.customize do
|
|
56
30
|
element "AccessControlList" do
|
|
31
|
+
ignore
|
|
57
32
|
element "Grant" do
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
33
|
+
rename :grants
|
|
34
|
+
list
|
|
61
35
|
element "Grantee" do
|
|
62
|
-
construct_value { AccessControlList::Grantee.new }
|
|
63
36
|
element "ID" do
|
|
64
37
|
rename :canonical_user_id
|
|
65
38
|
end
|
|
66
39
|
end
|
|
67
|
-
|
|
68
40
|
element "Permission" do
|
|
69
41
|
symbol_value
|
|
70
42
|
end
|
|
71
43
|
end
|
|
72
|
-
|
|
73
|
-
format_value { |value| super(value.grant) }
|
|
74
|
-
rename :grants
|
|
75
|
-
|
|
76
44
|
end
|
|
77
45
|
end
|
|
78
46
|
|
|
79
|
-
ListObjects =
|
|
47
|
+
ListObjects = BaseGrammar.customize do
|
|
80
48
|
|
|
81
|
-
element("Name") { rename
|
|
49
|
+
element("Name") { rename :bucket_name }
|
|
82
50
|
element("MaxKeys") { integer_value }
|
|
83
|
-
element("IsTruncated") { rename
|
|
51
|
+
element("IsTruncated") { rename :truncated; boolean_value }
|
|
84
52
|
element("Delimiter") { force }
|
|
85
53
|
|
|
86
54
|
element("Contents") do
|
|
@@ -92,64 +60,66 @@ module AWS
|
|
|
92
60
|
element("Key") { }
|
|
93
61
|
element("Size") { }
|
|
94
62
|
element("StorageClass") { }
|
|
95
|
-
element("ETag") { rename
|
|
63
|
+
element("ETag") { rename :etag }
|
|
96
64
|
|
|
97
|
-
# DateTime is more general, Time is much faster to construct
|
|
98
65
|
element("LastModified") { time_value }
|
|
99
66
|
end
|
|
100
67
|
|
|
101
|
-
|
|
68
|
+
element "CommonPrefixes" do
|
|
69
|
+
collect_values
|
|
70
|
+
end
|
|
102
71
|
|
|
103
72
|
end
|
|
104
73
|
|
|
105
|
-
GetBucketVersioning =
|
|
74
|
+
GetBucketVersioning = BaseGrammar.customize do
|
|
75
|
+
default_value :status, :unversioned
|
|
106
76
|
element("Status") do
|
|
107
77
|
symbol_value
|
|
108
|
-
format_value {|value| super(value) || :unversioned }
|
|
109
|
-
force
|
|
110
78
|
end
|
|
111
79
|
end
|
|
112
80
|
|
|
113
|
-
ListObjectVersions =
|
|
81
|
+
ListObjectVersions = BaseGrammar.customize do
|
|
114
82
|
|
|
115
83
|
element("MaxKeys") { integer_value }
|
|
116
|
-
element("IsTruncated") { rename
|
|
84
|
+
element("IsTruncated") { rename :truncated; boolean_value }
|
|
117
85
|
element("NextKeyMarker") { force }
|
|
118
86
|
element("NextVersionIdMarker") { force }
|
|
119
87
|
|
|
120
88
|
%w(DeleteMarker Version).each do |element_name|
|
|
121
89
|
element(element_name) do
|
|
122
90
|
collect_values
|
|
123
|
-
rename(
|
|
124
|
-
element("IsLatest") { rename
|
|
91
|
+
rename(:versions)
|
|
92
|
+
element("IsLatest") { rename :latest; boolean_value }
|
|
125
93
|
element("LastModified") { datetime_value }
|
|
126
|
-
element("ETag") { rename
|
|
94
|
+
element("ETag") { rename :etag }
|
|
127
95
|
element("Size") { integer_value }
|
|
128
96
|
element("StorageClass") { symbol_value }
|
|
129
97
|
end
|
|
130
98
|
end
|
|
131
99
|
|
|
132
100
|
element "DeleteMarker" do
|
|
133
|
-
|
|
134
|
-
|
|
101
|
+
default_value(:delete_marker, true)
|
|
102
|
+
default_value(:version, false)
|
|
135
103
|
end
|
|
136
104
|
|
|
137
105
|
element "Version" do
|
|
138
|
-
|
|
139
|
-
|
|
106
|
+
default_value(:delete_marker, false)
|
|
107
|
+
default_value(:version, true)
|
|
140
108
|
end
|
|
141
109
|
|
|
142
|
-
|
|
110
|
+
element "CommonPrefixes" do
|
|
111
|
+
collect_values
|
|
112
|
+
end
|
|
143
113
|
|
|
144
114
|
end
|
|
145
115
|
|
|
146
|
-
|
|
147
|
-
InitiateMultipartUpload = Core::XmlGrammar.customize do
|
|
116
|
+
InitiateMultipartUpload = BaseGrammar.customize do
|
|
148
117
|
element("UploadId") { force }
|
|
149
118
|
end
|
|
150
119
|
|
|
151
|
-
ListMultipartUploads =
|
|
152
|
-
|
|
120
|
+
ListMultipartUploads = BaseGrammar.customize do
|
|
121
|
+
|
|
122
|
+
element("IsTruncated") { rename :truncated; boolean_value }
|
|
153
123
|
element("MaxUploads") { integer_value }
|
|
154
124
|
element("NextKeyMarker") { force }
|
|
155
125
|
element("NextUploadIdMarker") { force }
|
|
@@ -159,23 +129,26 @@ module AWS
|
|
|
159
129
|
element("StorageClass") { symbol_value }
|
|
160
130
|
element("Initiated") { datetime_value }
|
|
161
131
|
end
|
|
162
|
-
|
|
132
|
+
|
|
133
|
+
element "CommonPrefixes" do
|
|
134
|
+
collect_values
|
|
135
|
+
end
|
|
136
|
+
|
|
163
137
|
end
|
|
164
138
|
|
|
165
|
-
DeleteObjects =
|
|
139
|
+
DeleteObjects = BaseGrammar.customize do
|
|
166
140
|
element("Deleted") do
|
|
167
141
|
element("DeleteMarker") { boolean_value }
|
|
168
142
|
list
|
|
169
143
|
end
|
|
170
|
-
element("Error") { list; rename(
|
|
144
|
+
element("Error") { list; rename(:errors) }
|
|
171
145
|
end
|
|
172
146
|
|
|
173
|
-
|
|
174
|
-
CompleteMultipartUpload = Core::XmlGrammar.customize
|
|
147
|
+
CompleteMultipartUpload = BaseGrammar.customize
|
|
175
148
|
|
|
176
|
-
ListParts =
|
|
149
|
+
ListParts = BaseGrammar.customize do
|
|
177
150
|
element("StorageClass") { symbol_value }
|
|
178
|
-
element("IsTruncated") { rename
|
|
151
|
+
element("IsTruncated") { rename :truncated; boolean_value }
|
|
179
152
|
element("MaxParts") { integer_value }
|
|
180
153
|
element("PartNumberMarker") { integer_value }
|
|
181
154
|
element("NextPartNumberMarker") { integer_value }
|
|
@@ -188,10 +161,10 @@ module AWS
|
|
|
188
161
|
end
|
|
189
162
|
end
|
|
190
163
|
|
|
191
|
-
GetBucketLifecycleConfiguration =
|
|
164
|
+
GetBucketLifecycleConfiguration = BaseGrammar.customize do
|
|
192
165
|
element("Rule") do
|
|
193
166
|
list
|
|
194
|
-
rename(
|
|
167
|
+
rename(:rules)
|
|
195
168
|
element("Expiration") do
|
|
196
169
|
element("Days") { integer_value }
|
|
197
170
|
end
|
data/lib/aws/s3/data_options.rb
CHANGED
|
@@ -15,9 +15,12 @@ require 'pathname'
|
|
|
15
15
|
|
|
16
16
|
module AWS
|
|
17
17
|
class S3
|
|
18
|
+
|
|
19
|
+
# @private
|
|
18
20
|
module DataOptions
|
|
19
21
|
|
|
20
22
|
protected
|
|
23
|
+
|
|
21
24
|
def data_stream_from options, &block
|
|
22
25
|
|
|
23
26
|
validate_data!(options, block)
|
|
@@ -45,7 +48,6 @@ module AWS
|
|
|
45
48
|
|
|
46
49
|
end
|
|
47
50
|
|
|
48
|
-
protected
|
|
49
51
|
def content_length_from options
|
|
50
52
|
data = options[:data]
|
|
51
53
|
case
|
|
@@ -61,7 +63,6 @@ module AWS
|
|
|
61
63
|
end
|
|
62
64
|
end
|
|
63
65
|
|
|
64
|
-
protected
|
|
65
66
|
def validate_data! options, block
|
|
66
67
|
|
|
67
68
|
data = options[:data]
|
data/lib/aws/s3/errors.rb
CHANGED
|
@@ -31,6 +31,11 @@ module AWS
|
|
|
31
31
|
# @private
|
|
32
32
|
module Errors
|
|
33
33
|
|
|
34
|
+
# @private
|
|
35
|
+
GRAMMAR = Core::XML::Grammar.customize
|
|
36
|
+
|
|
37
|
+
extend Core::LazyErrorClasses
|
|
38
|
+
|
|
34
39
|
class BatchDeleteError < StandardError
|
|
35
40
|
|
|
36
41
|
def initialize error_counts
|
|
@@ -52,10 +57,8 @@ module AWS
|
|
|
52
57
|
|
|
53
58
|
include AWS::Errors::ClientError
|
|
54
59
|
|
|
55
|
-
def code; "NotModified"; end
|
|
56
|
-
|
|
57
60
|
def initialize(req, resp)
|
|
58
|
-
super(req, resp, "Not Modified")
|
|
61
|
+
super(req, resp, "NotModified", "Not Modified")
|
|
59
62
|
end
|
|
60
63
|
|
|
61
64
|
end
|
|
@@ -67,18 +70,12 @@ module AWS
|
|
|
67
70
|
|
|
68
71
|
include AWS::Errors::ClientError
|
|
69
72
|
|
|
70
|
-
def code
|
|
71
|
-
|
|
72
|
-
def initialize(req, resp)
|
|
73
|
-
super(req, resp, "No Such Key")
|
|
73
|
+
def initialize(req, resp, code = nil, message = nil)
|
|
74
|
+
super(req, resp, "NoSuchKey", "No Such Key")
|
|
74
75
|
end
|
|
75
76
|
|
|
76
77
|
end
|
|
77
78
|
|
|
78
|
-
BASE_ERROR_GRAMMAR = Client::XML::Error
|
|
79
|
-
|
|
80
|
-
include Core::LazyErrorClasses
|
|
81
|
-
|
|
82
79
|
end
|
|
83
80
|
end
|
|
84
81
|
end
|
|
@@ -44,6 +44,7 @@ module AWS
|
|
|
44
44
|
end
|
|
45
45
|
|
|
46
46
|
protected
|
|
47
|
+
|
|
47
48
|
def each_member_in_page(page, &block)
|
|
48
49
|
super
|
|
49
50
|
page.uploads.each do |u|
|
|
@@ -53,15 +54,12 @@ module AWS
|
|
|
53
54
|
end
|
|
54
55
|
end
|
|
55
56
|
|
|
56
|
-
protected
|
|
57
57
|
def list_request(options)
|
|
58
58
|
client.list_multipart_uploads(options)
|
|
59
59
|
end
|
|
60
60
|
|
|
61
|
-
protected
|
|
62
61
|
def limit_param; :max_uploads; end
|
|
63
62
|
|
|
64
|
-
protected
|
|
65
63
|
def pagination_markers; super + [:upload_id_marker]; end
|
|
66
64
|
|
|
67
65
|
end
|
|
@@ -62,7 +62,8 @@ module AWS
|
|
|
62
62
|
include Enumerable
|
|
63
63
|
include PrefixAndDelimiterCollection
|
|
64
64
|
|
|
65
|
-
# @param [Bucket] The S3 bucket this object collection belongs to.
|
|
65
|
+
# @param [Bucket] bucket The S3 bucket this object collection belongs to.
|
|
66
|
+
# @param [Hash] options
|
|
66
67
|
def initialize(bucket, options = {})
|
|
67
68
|
@bucket = bucket
|
|
68
69
|
super
|
|
@@ -19,11 +19,11 @@ module AWS
|
|
|
19
19
|
|
|
20
20
|
include Core::Model
|
|
21
21
|
|
|
22
|
-
# @param [S3Object]
|
|
22
|
+
# @param [S3Object] object
|
|
23
23
|
# @param [Hash] options
|
|
24
24
|
# @option options [String] :version_id A specific version of the object
|
|
25
25
|
# to get metadata for
|
|
26
|
-
def initialize
|
|
26
|
+
def initialize object, options = {}
|
|
27
27
|
@object = object
|
|
28
28
|
@version_id = options[:version_id]
|
|
29
29
|
super
|
|
@@ -30,7 +30,7 @@ module AWS
|
|
|
30
30
|
|
|
31
31
|
each_member_in_page(response, &block)
|
|
32
32
|
|
|
33
|
-
response.truncated
|
|
33
|
+
response.data[:truncated] ? next_markers(response) : nil
|
|
34
34
|
|
|
35
35
|
end
|
|
36
36
|
|
|
@@ -62,7 +62,7 @@ module AWS
|
|
|
62
62
|
protected
|
|
63
63
|
def next_markers page
|
|
64
64
|
pagination_markers.inject({}) do |markers, marker_name|
|
|
65
|
-
if marker = page.
|
|
65
|
+
if marker = page.data[:"next_#{marker_name}"]
|
|
66
66
|
markers[marker_name] = marker if marker
|
|
67
67
|
end
|
|
68
68
|
markers
|
|
@@ -25,29 +25,30 @@ module AWS
|
|
|
25
25
|
# stored.
|
|
26
26
|
#
|
|
27
27
|
# @example Form fields for uploading by file name
|
|
28
|
-
#
|
|
29
|
-
#
|
|
30
|
-
#
|
|
28
|
+
#
|
|
29
|
+
# form = bucket.presigned_post(:key => "photos/${filename}")
|
|
30
|
+
# form.url.to_s # => "https://mybucket.s3.amazonaws.com/"
|
|
31
|
+
# form.fields # => { "AWSAccessKeyId" => "...", ... }
|
|
31
32
|
#
|
|
32
33
|
# @example Generating a minimal HTML form
|
|
33
|
-
#
|
|
34
|
-
#
|
|
35
|
-
#
|
|
36
|
-
#
|
|
37
|
-
#
|
|
38
|
-
#
|
|
39
|
-
#
|
|
40
|
-
#
|
|
41
|
-
#
|
|
42
|
-
#
|
|
43
|
-
#
|
|
44
|
-
# END
|
|
34
|
+
#
|
|
35
|
+
# form = bucket.objects.myobj.presigned_post
|
|
36
|
+
# hidden_inputs = form.fields.map do |(name, value)|
|
|
37
|
+
# %(<input type="hidden" name="#{name}" value="#{value}" />)
|
|
38
|
+
# end
|
|
39
|
+
# <<-END
|
|
40
|
+
# <form action="#{form.url}" method="post" enctype="multipart/form-data">
|
|
41
|
+
# #{hidden_inputs}
|
|
42
|
+
# <input type="file" name="file" />
|
|
43
|
+
# </form>
|
|
44
|
+
# END
|
|
45
45
|
#
|
|
46
46
|
# @example Restricting the size of the uploaded object
|
|
47
|
-
#
|
|
47
|
+
# bucket.presigned_post(:content_length => 1..(10*1024))
|
|
48
48
|
#
|
|
49
49
|
# @example Restricting the key prefix
|
|
50
|
-
#
|
|
50
|
+
# bucket.presigned_post.where(:key).starts_with("photos/")
|
|
51
|
+
#
|
|
51
52
|
class PresignedPost
|
|
52
53
|
|
|
53
54
|
include Core::Model
|
data/lib/aws/s3/request.rb
CHANGED
|
@@ -22,12 +22,13 @@ module AWS
|
|
|
22
22
|
|
|
23
23
|
include Core::UriEscape
|
|
24
24
|
|
|
25
|
-
# @
|
|
25
|
+
# @return [bucket] S3 bucket name
|
|
26
26
|
attr_accessor :bucket
|
|
27
27
|
|
|
28
|
-
# @
|
|
28
|
+
# @return [String] S3 object key
|
|
29
29
|
attr_accessor :key
|
|
30
30
|
|
|
31
|
+
# @private
|
|
31
32
|
attr_accessor :body_stream
|
|
32
33
|
|
|
33
34
|
def metadata= metadata
|
|
@@ -67,7 +68,7 @@ module AWS
|
|
|
67
68
|
url_encoded_params
|
|
68
69
|
end
|
|
69
70
|
|
|
70
|
-
# @param [String, IO] The http request body. This can be a string or
|
|
71
|
+
# @param [String, IO] body The http request body. This can be a string or
|
|
71
72
|
# any object that responds to #read and #eof? (like an IO object).
|
|
72
73
|
def body= body
|
|
73
74
|
@body_stream = StringIO.new(body)
|
data/lib/aws/s3/s3_object.rb
CHANGED
|
@@ -204,17 +204,14 @@ module AWS
|
|
|
204
204
|
#
|
|
205
205
|
# @overload write(options = {})
|
|
206
206
|
# @overload write(data, options = {})
|
|
207
|
-
#
|
|
208
|
-
# @param data The data to upload (see the +:data+
|
|
209
|
-
# option).
|
|
207
|
+
# @param data The data to upload (see the +:data+ option).
|
|
210
208
|
#
|
|
211
209
|
# @param options [Hash] Additional upload options.
|
|
212
210
|
#
|
|
213
211
|
# @option options :data The data to upload. Valid values include:
|
|
214
|
-
# * A string
|
|
215
212
|
#
|
|
213
|
+
# * A string
|
|
216
214
|
# * A Pathname object
|
|
217
|
-
#
|
|
218
215
|
# * Any object responding to +read+ and +eof?+; the object
|
|
219
216
|
# must support the following access methods:
|
|
220
217
|
# read # all at once
|
|
@@ -704,7 +701,7 @@ module AWS
|
|
|
704
701
|
def read(options = {}, &blk)
|
|
705
702
|
options[:bucket_name] = bucket.name
|
|
706
703
|
options[:key] = key
|
|
707
|
-
client.get_object(options).data
|
|
704
|
+
client.get_object(options).data[:data]
|
|
708
705
|
end
|
|
709
706
|
|
|
710
707
|
# @private
|
|
@@ -740,13 +737,14 @@ module AWS
|
|
|
740
737
|
# @return [AccessControlList]
|
|
741
738
|
#
|
|
742
739
|
def acl
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
)
|
|
740
|
+
|
|
741
|
+
resp = client.get_object_acl(:bucket_name => bucket.name, :key => key)
|
|
742
|
+
|
|
743
|
+
acl = AccessControlList.new(resp.data)
|
|
747
744
|
acl.extend ACLProxy
|
|
748
745
|
acl.object = self
|
|
749
746
|
acl
|
|
747
|
+
|
|
750
748
|
end
|
|
751
749
|
|
|
752
750
|
# Sets the object's access control list. +acl+ can be:
|