aws-sdk 1.4.1 → 1.5.0
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|