aws-sdk 1.8.5 → 1.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.yardopts +1 -0
- data/README.rdoc +8 -0
- data/lib/aws-sdk.rb +39 -35
- data/lib/aws/api_config/CloudFront-2012-07-01.yml +2398 -0
- data/lib/aws/api_config/DirectConnect-2012-10-25.yml +475 -0
- data/lib/aws/api_config/DynamoDB-2011-12-05.yml +8 -0
- data/lib/aws/api_config/DynamoDB-2012-08-10.yml +1516 -0
- data/lib/aws/api_config/OpsWorks-2013-02-18.yml +2 -2
- data/lib/aws/auto_scaling.rb +44 -44
- data/lib/aws/auto_scaling/activity.rb +1 -1
- data/lib/aws/auto_scaling/activity_collection.rb +14 -15
- data/lib/aws/auto_scaling/client.rb +277 -277
- data/lib/aws/auto_scaling/config.rb +1 -1
- data/lib/aws/auto_scaling/group.rb +35 -36
- data/lib/aws/auto_scaling/group_collection.rb +10 -10
- data/lib/aws/auto_scaling/group_options.rb +19 -19
- data/lib/aws/auto_scaling/instance.rb +27 -27
- data/lib/aws/auto_scaling/instance_collection.rb +10 -10
- data/lib/aws/auto_scaling/launch_configuration.rb +3 -3
- data/lib/aws/auto_scaling/launch_configuration_collection.rb +1 -1
- data/lib/aws/auto_scaling/notification_configuration.rb +2 -2
- data/lib/aws/auto_scaling/notification_configuration_collection.rb +37 -38
- data/lib/aws/auto_scaling/scaling_policy.rb +3 -3
- data/lib/aws/auto_scaling/scaling_policy_collection.rb +6 -6
- data/lib/aws/auto_scaling/scaling_policy_options.rb +8 -7
- data/lib/aws/auto_scaling/scheduled_action.rb +3 -3
- data/lib/aws/auto_scaling/scheduled_action_collection.rb +28 -28
- data/lib/aws/auto_scaling/tag_collection.rb +30 -28
- data/lib/aws/cloud_formation.rb +95 -94
- data/lib/aws/cloud_formation/client.rb +136 -133
- data/lib/aws/cloud_formation/config.rb +1 -1
- data/lib/aws/cloud_formation/stack.rb +37 -37
- data/lib/aws/cloud_formation/stack_collection.rb +28 -27
- data/lib/aws/cloud_formation/stack_event.rb +9 -11
- data/lib/aws/cloud_formation/stack_output.rb +1 -1
- data/lib/aws/cloud_formation/stack_resource.rb +6 -6
- data/lib/aws/cloud_formation/stack_resource_collection.rb +11 -12
- data/lib/aws/cloud_formation/stack_resource_summary_collection.rb +11 -11
- data/lib/aws/cloud_formation/stack_summary_collection.rb +39 -39
- data/lib/aws/cloud_front.rb +21 -21
- data/lib/aws/cloud_front/client.rb +853 -652
- data/lib/aws/cloud_front/request.rb +3 -0
- data/lib/aws/cloud_search.rb +22 -22
- data/lib/aws/cloud_search/client.rb +322 -315
- data/lib/aws/cloud_search/config.rb +1 -1
- data/lib/aws/cloud_watch.rb +39 -39
- data/lib/aws/cloud_watch/alarm.rb +55 -37
- data/lib/aws/cloud_watch/alarm_collection.rb +18 -18
- data/lib/aws/cloud_watch/alarm_history_item_collection.rb +2 -2
- data/lib/aws/cloud_watch/client.rb +360 -146
- data/lib/aws/cloud_watch/config.rb +1 -1
- data/lib/aws/cloud_watch/metric.rb +15 -15
- data/lib/aws/cloud_watch/metric_alarm_collection.rb +17 -17
- data/lib/aws/cloud_watch/metric_collection.rb +16 -16
- data/lib/aws/cloud_watch/metric_statistics.rb +11 -11
- data/lib/aws/core.rb +243 -225
- data/lib/aws/core/async_handle.rb +13 -13
- data/lib/aws/core/cacheable.rb +14 -15
- data/lib/aws/core/client.rb +40 -15
- data/lib/aws/core/collection.rb +42 -46
- data/lib/aws/core/collection/with_limit_and_next_token.rb +1 -1
- data/lib/aws/core/collection/with_next_token.rb +1 -1
- data/lib/aws/core/configuration.rb +97 -133
- data/lib/aws/core/credential_providers.rb +16 -16
- data/lib/aws/core/data.rb +23 -23
- data/lib/aws/core/http/connection_pool.rb +348 -0
- data/lib/aws/core/http/net_http_handler.rb +17 -26
- data/lib/aws/core/http/patch.rb +102 -0
- data/lib/aws/core/http/request.rb +13 -19
- data/lib/aws/core/http/response.rb +2 -2
- data/lib/aws/core/lazy_error_classes.rb +17 -17
- data/lib/aws/core/log_formatter.rb +70 -104
- data/lib/aws/core/options/json_serializer.rb +1 -1
- data/lib/aws/core/options/validator.rb +4 -4
- data/lib/aws/core/page_result.rb +8 -8
- data/lib/aws/core/policy.rb +49 -49
- data/lib/aws/core/region.rb +72 -0
- data/lib/aws/core/region_collection.rb +106 -0
- data/lib/aws/core/resource.rb +5 -5
- data/lib/aws/core/response.rb +20 -17
- data/lib/aws/core/rest_request_builder.rb +4 -4
- data/lib/aws/core/service_interface.rb +24 -2
- data/lib/aws/core/signature/version_3.rb +2 -2
- data/lib/aws/core/uri_escape.rb +1 -1
- data/lib/aws/core/xml/frame_stack.rb +1 -1
- data/lib/aws/core/xml/grammar.rb +3 -4
- data/lib/aws/core/xml/sax_handlers/libxml.rb +2 -2
- data/lib/aws/core/xml/sax_handlers/nokogiri.rb +3 -3
- data/lib/aws/core/xml/sax_handlers/rexml.rb +5 -5
- data/lib/aws/core/xml/stub.rb +9 -9
- data/lib/aws/data_pipeline.rb +21 -21
- data/lib/aws/data_pipeline/client.rb +189 -133
- data/lib/aws/data_pipeline/config.rb +1 -1
- data/lib/aws/direct_connect.rb +74 -0
- data/lib/aws/direct_connect/client.rb +253 -0
- data/lib/aws/direct_connect/config.rb +18 -0
- data/lib/aws/direct_connect/errors.rb +22 -0
- data/lib/aws/direct_connect/request.rb +27 -0
- data/lib/aws/dynamo_db.rb +71 -69
- data/lib/aws/dynamo_db/attribute_collection.rb +53 -58
- data/lib/aws/dynamo_db/batch_get.rb +23 -23
- data/lib/aws/dynamo_db/batch_write.rb +43 -43
- data/lib/aws/dynamo_db/binary.rb +9 -9
- data/lib/aws/dynamo_db/client.rb +494 -509
- data/lib/aws/dynamo_db/client_base.rb +91 -0
- data/lib/aws/dynamo_db/client_v2.rb +825 -0
- data/lib/aws/dynamo_db/config.rb +1 -1
- data/lib/aws/dynamo_db/item.rb +10 -10
- data/lib/aws/dynamo_db/item_collection.rb +75 -75
- data/lib/aws/dynamo_db/table.rb +85 -85
- data/lib/aws/dynamo_db/table_collection.rb +13 -13
- data/lib/aws/ec2.rb +132 -142
- data/lib/aws/ec2/attachment.rb +31 -36
- data/lib/aws/ec2/attachment_collection.rb +1 -1
- data/lib/aws/ec2/availability_zone.rb +4 -4
- data/lib/aws/ec2/client.rb +2272 -2125
- data/lib/aws/ec2/config.rb +1 -1
- data/lib/aws/ec2/customer_gateway.rb +6 -6
- data/lib/aws/ec2/customer_gateway_collection.rb +6 -6
- data/lib/aws/ec2/dhcp_options.rb +3 -3
- data/lib/aws/ec2/dhcp_options_collection.rb +10 -10
- data/lib/aws/ec2/elastic_ip.rb +15 -15
- data/lib/aws/ec2/elastic_ip_collection.rb +11 -15
- data/lib/aws/ec2/export_task.rb +4 -4
- data/lib/aws/ec2/export_task_collection.rb +11 -11
- data/lib/aws/ec2/filtered_collection.rb +6 -8
- data/lib/aws/ec2/image.rb +46 -40
- data/lib/aws/ec2/image_collection.rb +44 -52
- data/lib/aws/ec2/instance.rb +64 -62
- data/lib/aws/ec2/instance_collection.rb +47 -50
- data/lib/aws/ec2/internet_gateway.rb +6 -6
- data/lib/aws/ec2/internet_gateway/attachment.rb +13 -13
- data/lib/aws/ec2/internet_gateway_collection.rb +3 -3
- data/lib/aws/ec2/key_pair.rb +3 -3
- data/lib/aws/ec2/key_pair_collection.rb +12 -12
- data/lib/aws/ec2/network_acl.rb +39 -39
- data/lib/aws/ec2/network_acl/association.rb +2 -2
- data/lib/aws/ec2/network_acl/entry.rb +22 -22
- data/lib/aws/ec2/network_acl_collection.rb +2 -2
- data/lib/aws/ec2/network_interface.rb +13 -4
- data/lib/aws/ec2/network_interface/attachment.rb +3 -3
- data/lib/aws/ec2/network_interface_collection.rb +5 -5
- data/lib/aws/ec2/permission_collection.rb +1 -1
- data/lib/aws/ec2/region.rb +6 -6
- data/lib/aws/ec2/region_collection.rb +1 -1
- data/lib/aws/ec2/reserved_instances_collection.rb +2 -2
- data/lib/aws/ec2/reserved_instances_offering_collection.rb +2 -2
- data/lib/aws/ec2/resource_tag_collection.rb +5 -5
- data/lib/aws/ec2/route_table.rb +14 -14
- data/lib/aws/ec2/route_table/association.rb +22 -22
- data/lib/aws/ec2/route_table/route.rb +8 -8
- data/lib/aws/ec2/route_table_collection.rb +3 -3
- data/lib/aws/ec2/security_group.rb +39 -41
- data/lib/aws/ec2/security_group_collection.rb +19 -21
- data/lib/aws/ec2/snapshot.rb +3 -3
- data/lib/aws/ec2/snapshot_collection.rb +11 -12
- data/lib/aws/ec2/subnet.rb +2 -2
- data/lib/aws/ec2/subnet_collection.rb +17 -17
- data/lib/aws/ec2/tag_collection.rb +1 -1
- data/lib/aws/ec2/tagged_collection.rb +7 -7
- data/lib/aws/ec2/tagged_item.rb +10 -10
- data/lib/aws/ec2/volume.rb +16 -16
- data/lib/aws/ec2/volume_collection.rb +9 -12
- data/lib/aws/ec2/vpc.rb +6 -6
- data/lib/aws/ec2/vpc_collection.rb +10 -10
- data/lib/aws/ec2/vpn_connection.rb +4 -4
- data/lib/aws/ec2/vpn_connection/telemetry.rb +1 -1
- data/lib/aws/ec2/vpn_connection_collection.rb +6 -6
- data/lib/aws/ec2/vpn_gateway.rb +2 -2
- data/lib/aws/ec2/vpn_gateway_collection.rb +5 -5
- data/lib/aws/elastic_beanstalk.rb +12 -12
- data/lib/aws/elastic_beanstalk/client.rb +376 -368
- data/lib/aws/elastic_beanstalk/config.rb +1 -1
- data/lib/aws/elastic_transcoder.rb +5 -5
- data/lib/aws/elastic_transcoder/client.rb +283 -283
- data/lib/aws/elastic_transcoder/config.rb +1 -1
- data/lib/aws/elasticache.rb +12 -12
- data/lib/aws/elasticache/client.rb +484 -479
- data/lib/aws/elasticache/config.rb +1 -1
- data/lib/aws/elb.rb +23 -23
- data/lib/aws/elb/availability_zone_collection.rb +34 -34
- data/lib/aws/elb/backend_server_policy_collection.rb +24 -24
- data/lib/aws/elb/client.rb +153 -153
- data/lib/aws/elb/config.rb +1 -1
- data/lib/aws/elb/errors.rb +1 -1
- data/lib/aws/elb/instance_collection.rb +20 -25
- data/lib/aws/elb/listener.rb +3 -3
- data/lib/aws/elb/listener_collection.rb +8 -8
- data/lib/aws/elb/load_balancer.rb +15 -16
- data/lib/aws/elb/load_balancer_collection.rb +36 -24
- data/lib/aws/elb/load_balancer_policy.rb +1 -1
- data/lib/aws/elb/load_balancer_policy_collection.rb +5 -5
- data/lib/aws/emr.rb +28 -26
- data/lib/aws/emr/client.rb +165 -149
- data/lib/aws/emr/config.rb +1 -1
- data/lib/aws/emr/instance_group.rb +1 -1
- data/lib/aws/emr/instance_group_collection.rb +1 -1
- data/lib/aws/emr/job_flow.rb +27 -26
- data/lib/aws/emr/job_flow_collection.rb +34 -34
- data/lib/aws/errors.rb +7 -7
- data/lib/aws/glacier.rb +21 -21
- data/lib/aws/glacier/archive_collection.rb +2 -2
- data/lib/aws/glacier/client.rb +139 -140
- data/lib/aws/glacier/config.rb +1 -1
- data/lib/aws/glacier/vault.rb +2 -2
- data/lib/aws/glacier/vault_collection.rb +1 -1
- data/lib/aws/iam.rb +133 -144
- data/lib/aws/iam/access_key.rb +17 -17
- data/lib/aws/iam/access_key_collection.rb +22 -22
- data/lib/aws/iam/account_alias_collection.rb +2 -2
- data/lib/aws/iam/client.rb +429 -420
- data/lib/aws/iam/collection.rb +1 -1
- data/lib/aws/iam/config.rb +2 -2
- data/lib/aws/iam/group.rb +8 -8
- data/lib/aws/iam/group_collection.rb +16 -16
- data/lib/aws/iam/group_policy_collection.rb +6 -6
- data/lib/aws/iam/group_user_collection.rb +3 -3
- data/lib/aws/iam/mfa_device.rb +1 -1
- data/lib/aws/iam/mfa_device_collection.rb +9 -9
- data/lib/aws/iam/policy_collection.rb +4 -4
- data/lib/aws/iam/resource.rb +2 -2
- data/lib/aws/iam/server_certificate.rb +1 -1
- data/lib/aws/iam/server_certificate_collection.rb +15 -15
- data/lib/aws/iam/signing_certificate.rb +29 -29
- data/lib/aws/iam/signing_certificate_collection.rb +23 -23
- data/lib/aws/iam/user.rb +33 -38
- data/lib/aws/iam/user_collection.rb +27 -27
- data/lib/aws/iam/user_group_collection.rb +3 -3
- data/lib/aws/iam/user_policy_collection.rb +6 -6
- data/lib/aws/iam/virtual_mfa_device.rb +12 -12
- data/lib/aws/iam/virtual_mfa_device_collection.rb +4 -4
- data/lib/aws/import_export.rb +22 -21
- data/lib/aws/import_export/client.rb +47 -43
- data/lib/aws/ops_works.rb +5 -5
- data/lib/aws/ops_works/client.rb +484 -438
- data/lib/aws/ops_works/config.rb +1 -1
- data/lib/aws/rails.rb +34 -34
- data/lib/aws/rds.rb +18 -18
- data/lib/aws/rds/client.rb +1286 -1277
- data/lib/aws/rds/config.rb +1 -1
- data/lib/aws/rds/db_instance.rb +15 -4
- data/lib/aws/rds/db_snapshot.rb +1 -1
- data/lib/aws/record.rb +50 -24
- data/lib/aws/record/abstract_base.rb +52 -60
- data/lib/aws/record/attributes.rb +79 -79
- data/lib/aws/record/conversion.rb +1 -1
- data/lib/aws/record/dirty_tracking.rb +69 -67
- data/lib/aws/record/errors.rb +21 -21
- data/lib/aws/record/exceptions.rb +2 -2
- data/lib/aws/record/hash_model.rb +20 -21
- data/lib/aws/record/hash_model/attributes.rb +13 -15
- data/lib/aws/record/hash_model/finder_methods.rb +46 -46
- data/lib/aws/record/hash_model/scope.rb +31 -31
- data/lib/aws/record/model.rb +136 -136
- data/lib/aws/record/model/attributes.rb +57 -59
- data/lib/aws/record/model/finder_methods.rb +67 -67
- data/lib/aws/record/model/scope.rb +48 -49
- data/lib/aws/record/naming.rb +1 -1
- data/lib/aws/record/scope.rb +23 -19
- data/lib/aws/record/validations.rb +253 -271
- data/lib/aws/record/validator.rb +3 -3
- data/lib/aws/record/validators/acceptance.rb +1 -3
- data/lib/aws/record/validators/block.rb +1 -3
- data/lib/aws/record/validators/confirmation.rb +1 -3
- data/lib/aws/record/validators/count.rb +2 -4
- data/lib/aws/record/validators/exclusion.rb +2 -4
- data/lib/aws/record/validators/format.rb +2 -4
- data/lib/aws/record/validators/inclusion.rb +1 -3
- data/lib/aws/record/validators/length.rb +5 -7
- data/lib/aws/record/validators/method.rb +1 -3
- data/lib/aws/record/validators/numericality.rb +6 -8
- data/lib/aws/record/validators/presence.rb +1 -3
- data/lib/aws/redshift.rb +14 -14
- data/lib/aws/redshift/client.rb +596 -592
- data/lib/aws/redshift/config.rb +1 -1
- data/lib/aws/route_53.rb +30 -30
- data/lib/aws/route_53/change_batch.rb +7 -7
- data/lib/aws/route_53/client.rb +188 -152
- data/lib/aws/route_53/hosted_zone.rb +4 -4
- data/lib/aws/route_53/hosted_zone_collection.rb +7 -7
- data/lib/aws/route_53/resource_record_set.rb +10 -10
- data/lib/aws/route_53/resource_record_set_collection.rb +6 -6
- data/lib/aws/s3.rb +79 -79
- data/lib/aws/s3/access_control_list.rb +44 -36
- data/lib/aws/s3/acl_options.rb +51 -51
- data/lib/aws/s3/bucket.rb +146 -146
- data/lib/aws/s3/bucket_collection.rb +21 -21
- data/lib/aws/s3/bucket_lifecycle_configuration.rb +81 -82
- data/lib/aws/s3/bucket_tag_collection.rb +4 -2
- data/lib/aws/s3/cipher_io.rb +5 -4
- data/lib/aws/s3/client.rb +89 -84
- data/lib/aws/s3/client/xml.rb +1 -1
- data/lib/aws/s3/config.rb +7 -1
- data/lib/aws/s3/cors_rule.rb +2 -0
- data/lib/aws/s3/cors_rule_collection.rb +42 -40
- data/lib/aws/s3/data_options.rb +16 -11
- data/lib/aws/s3/encryption_utils.rb +2 -2
- data/lib/aws/s3/errors.rb +7 -7
- data/lib/aws/s3/multipart_upload.rb +30 -33
- data/lib/aws/s3/multipart_upload_collection.rb +8 -6
- data/lib/aws/s3/object_collection.rb +35 -35
- data/lib/aws/s3/object_metadata.rb +6 -6
- data/lib/aws/s3/object_version.rb +4 -4
- data/lib/aws/s3/object_version_collection.rb +15 -15
- data/lib/aws/s3/policy.rb +2 -2
- data/lib/aws/s3/prefixed_collection.rb +9 -5
- data/lib/aws/s3/presigned_post.rb +39 -37
- data/lib/aws/s3/request.rb +11 -11
- data/lib/aws/s3/s3_object.rb +210 -200
- data/lib/aws/s3/tree.rb +25 -27
- data/lib/aws/s3/tree/child_collection.rb +3 -3
- data/lib/aws/s3/tree/leaf_node.rb +2 -2
- data/lib/aws/s3/tree/parent.rb +1 -1
- data/lib/aws/s3/website_configuration.rb +13 -13
- data/lib/aws/simple_db.rb +83 -83
- data/lib/aws/simple_db/attribute.rb +9 -7
- data/lib/aws/simple_db/attribute_collection.rb +22 -13
- data/lib/aws/simple_db/client.rb +107 -107
- data/lib/aws/simple_db/config.rb +7 -1
- data/lib/aws/simple_db/consistent_read_option.rb +5 -5
- data/lib/aws/simple_db/domain.rb +4 -2
- data/lib/aws/simple_db/domain_collection.rb +4 -4
- data/lib/aws/simple_db/domain_metadata.rb +5 -5
- data/lib/aws/simple_db/errors.rb +9 -9
- data/lib/aws/simple_db/item.rb +5 -5
- data/lib/aws/simple_db/item_collection.rb +83 -81
- data/lib/aws/simple_db/item_data.rb +4 -4
- data/lib/aws/simple_db/put_attributes.rb +3 -3
- data/lib/aws/simple_email_service.rb +140 -140
- data/lib/aws/simple_email_service/client.rb +82 -76
- data/lib/aws/simple_email_service/config.rb +1 -2
- data/lib/aws/simple_email_service/email_address_collection.rb +3 -3
- data/lib/aws/simple_email_service/identity.rb +8 -8
- data/lib/aws/simple_email_service/quotas.rb +8 -6
- data/lib/aws/simple_workflow.rb +106 -106
- data/lib/aws/simple_workflow/activity_task.rb +15 -22
- data/lib/aws/simple_workflow/activity_task_collection.rb +15 -15
- data/lib/aws/simple_workflow/activity_type.rb +23 -23
- data/lib/aws/simple_workflow/activity_type_collection.rb +23 -23
- data/lib/aws/simple_workflow/client.rb +1004 -956
- data/lib/aws/simple_workflow/config.rb +1 -1
- data/lib/aws/simple_workflow/count.rb +5 -5
- data/lib/aws/simple_workflow/decision_task.rb +129 -129
- data/lib/aws/simple_workflow/decision_task_collection.rb +59 -59
- data/lib/aws/simple_workflow/domain.rb +11 -11
- data/lib/aws/simple_workflow/domain_collection.rb +26 -26
- data/lib/aws/simple_workflow/history_event.rb +32 -32
- data/lib/aws/simple_workflow/history_event_collection.rb +3 -3
- data/lib/aws/simple_workflow/option_formatters.rb +5 -5
- data/lib/aws/simple_workflow/request.rb +1 -1
- data/lib/aws/simple_workflow/resource.rb +1 -1
- data/lib/aws/simple_workflow/type.rb +8 -8
- data/lib/aws/simple_workflow/type_collection.rb +15 -15
- data/lib/aws/simple_workflow/workflow_execution.rb +70 -72
- data/lib/aws/simple_workflow/workflow_execution_collection.rb +130 -130
- data/lib/aws/simple_workflow/workflow_type.rb +27 -25
- data/lib/aws/simple_workflow/workflow_type_collection.rb +20 -20
- data/lib/aws/sns.rb +25 -25
- data/lib/aws/sns/client.rb +55 -55
- data/lib/aws/sns/config.rb +1 -1
- data/lib/aws/sns/policy.rb +1 -1
- data/lib/aws/sns/subscription.rb +7 -7
- data/lib/aws/sns/subscription_collection.rb +5 -5
- data/lib/aws/sns/topic.rb +49 -49
- data/lib/aws/sns/topic_collection.rb +2 -2
- data/lib/aws/sns/topic_subscription_collection.rb +5 -5
- data/lib/aws/sqs.rb +20 -20
- data/lib/aws/sqs/client.rb +78 -78
- data/lib/aws/sqs/config.rb +1 -1
- data/lib/aws/sqs/errors.rb +12 -12
- data/lib/aws/sqs/queue.rb +66 -67
- data/lib/aws/sqs/queue_collection.rb +16 -8
- data/lib/aws/sqs/received_message.rb +7 -6
- data/lib/aws/storage_gateway.rb +21 -21
- data/lib/aws/storage_gateway/client.rb +269 -202
- data/lib/aws/storage_gateway/config.rb +1 -1
- data/lib/aws/sts.rb +10 -8
- data/lib/aws/sts/client.rb +35 -35
- data/lib/aws/sts/session.rb +3 -3
- data/lib/aws/version.rb +1 -2
- metadata +23 -21
- data/lib/aws/core/autoloader.rb +0 -64
- data/lib/net/http/connection_pool.rb +0 -226
- data/lib/net/http/connection_pool/connection.rb +0 -189
- data/lib/net/http/connection_pool/session.rb +0 -126
@@ -14,22 +14,22 @@
|
|
14
14
|
module AWS
|
15
15
|
class S3
|
16
16
|
|
17
|
-
# Represents a collection of buckets.
|
17
|
+
# Represents a collection of buckets.
|
18
18
|
#
|
19
19
|
# You can use this to create a bucket:
|
20
20
|
#
|
21
|
-
#
|
21
|
+
# s3.buckets.create(:name => "mybucket")
|
22
22
|
#
|
23
23
|
# You can get a handle for a specific bucket with indifferent
|
24
24
|
# access:
|
25
25
|
#
|
26
|
-
#
|
27
|
-
#
|
26
|
+
# bucket = s3.buckets[:mybucket]
|
27
|
+
# bucket = s3.buckets['mybucket']
|
28
28
|
#
|
29
29
|
# You can also use it to find out which buckets are in your account:
|
30
30
|
#
|
31
|
-
#
|
32
|
-
#
|
31
|
+
# s3.buckets.collect(&:name)
|
32
|
+
# #=> ['bucket1', 'bucket2', ...]
|
33
33
|
#
|
34
34
|
class BucketCollection
|
35
35
|
|
@@ -43,8 +43,8 @@ module AWS
|
|
43
43
|
# against the bucket using the S3 endpoint specific to the
|
44
44
|
# region in which your bucket resides. For example:
|
45
45
|
#
|
46
|
-
#
|
47
|
-
#
|
46
|
+
# s3 = AWS::S3.new(:region => "eu-west-1")
|
47
|
+
# bucket = s3.buckets.create("my.eu.bucket")
|
48
48
|
#
|
49
49
|
# For a full list of endpoints and regions, see
|
50
50
|
# {http://docs.amazonwebservices.com/general/latest/gr/index.html?rande.html
|
@@ -68,17 +68,17 @@ module AWS
|
|
68
68
|
# appropriate location constraint for the endpoint. For
|
69
69
|
# example:
|
70
70
|
#
|
71
|
-
#
|
72
|
-
#
|
73
|
-
#
|
71
|
+
# s3 = AWS::S3.new(:region => "us-west-1")
|
72
|
+
# bucket = s3.buckets.create("my-us-west-bucket")
|
73
|
+
# bucket.location_constraint # => "us-west-1"
|
74
74
|
#
|
75
|
-
# @option options [Symbol,String] :acl (:private) Sets the ACL of the
|
75
|
+
# @option options [Symbol,String] :acl (:private) Sets the ACL of the
|
76
76
|
# bucket you are creating. Valid Values include:
|
77
|
-
# *
|
78
|
-
# *
|
79
|
-
# *
|
80
|
-
# *
|
81
|
-
# *
|
77
|
+
# * `:private`
|
78
|
+
# * `:public_read`
|
79
|
+
# * `:public_read_write`
|
80
|
+
# * `:authenticated_read`
|
81
|
+
# * `:log_delivery_write`
|
82
82
|
#
|
83
83
|
# @option options [String] :grant_read
|
84
84
|
# @option options [String] :grant_write
|
@@ -95,10 +95,10 @@ module AWS
|
|
95
95
|
options[:acl] = acl.to_s.tr('_', '-')
|
96
96
|
end
|
97
97
|
|
98
|
-
# auto set the location constraint for the user if it is not
|
99
|
-
# passed in and the endpoint is not the us-standard region. don't
|
100
|
-
# override the location constraint though, even it is wrong,
|
101
|
-
unless
|
98
|
+
# auto set the location constraint for the user if it is not
|
99
|
+
# passed in and the endpoint is not the us-standard region. don't
|
100
|
+
# override the location constraint though, even it is wrong,
|
101
|
+
unless
|
102
102
|
config.s3_endpoint == 's3.amazonaws.com' or
|
103
103
|
options[:location_constraint]
|
104
104
|
then
|
@@ -21,7 +21,7 @@ module AWS
|
|
21
21
|
# Amazon S3 stores objects. The rules apply to objects whose keys match
|
22
22
|
# the rule's prefix.
|
23
23
|
#
|
24
|
-
#
|
24
|
+
# ## Rules
|
25
25
|
#
|
26
26
|
# A rule is comprised primarily of an id, prefix and set of
|
27
27
|
# configuration options. Configuration options on the rules can specify:
|
@@ -33,84 +33,84 @@ module AWS
|
|
33
33
|
# See {Rule} for more information on all of the attributes and methods
|
34
34
|
# available for rules.
|
35
35
|
#
|
36
|
-
#
|
36
|
+
# ## Expiring Objects
|
37
37
|
#
|
38
38
|
# You can add a rule to a bucket lifecycle configuration using {#add_rule}
|
39
39
|
# inside of an {#update} block that will expire an object after a given
|
40
40
|
# number of days:
|
41
41
|
#
|
42
|
-
#
|
43
|
-
#
|
44
|
-
#
|
45
|
-
#
|
42
|
+
# # delete backups after they are 1 year old
|
43
|
+
# bucket.lifecycle_configuration.update do
|
44
|
+
# add_rule('backups/', :expiration_time => 365)
|
45
|
+
# end
|
46
46
|
#
|
47
47
|
# You can also define the rule to expire objects at a specific date:
|
48
48
|
#
|
49
|
-
#
|
50
|
-
#
|
51
|
-
#
|
52
|
-
#
|
53
|
-
#
|
49
|
+
# # delete backups on January 1st of next year
|
50
|
+
# bucket.lifecycle_configuration.update do
|
51
|
+
# date = Date.new(Time.now.year + 1, 01, 01)
|
52
|
+
# add_rule('backups/', :expiration_time => date)
|
53
|
+
# end
|
54
54
|
#
|
55
|
-
#
|
55
|
+
# ## Transitioning Objects to Glacier
|
56
56
|
#
|
57
57
|
# You can add a rule to a bucket lifecycle configuration using {#add_rule}
|
58
58
|
# inside of an {#update} block that will transition objects to Glacier
|
59
59
|
# after a given number of days:
|
60
60
|
#
|
61
|
-
#
|
62
|
-
#
|
63
|
-
#
|
64
|
-
#
|
61
|
+
# # move backups to Glacier after 3 days
|
62
|
+
# bucket.lifecycle_configuration.update do
|
63
|
+
# add_rule('backups/', :glacier_transition_time => 3)
|
64
|
+
# end
|
65
65
|
#
|
66
66
|
# You can also define the rule to transition objects at a specific date:
|
67
67
|
#
|
68
|
-
#
|
69
|
-
#
|
70
|
-
#
|
71
|
-
#
|
72
|
-
#
|
68
|
+
# # transition all backups on January 1st of next year
|
69
|
+
# bucket.lifecycle_configuration.update do
|
70
|
+
# date = Date.new(Time.now.year + 1, 01, 01)
|
71
|
+
# add_rule('backups/', :glacier_transition_time => date)
|
72
|
+
# end
|
73
73
|
#
|
74
|
-
#
|
74
|
+
# ## Replacing Rules
|
75
75
|
#
|
76
76
|
# If you prefer to completely replace a lifecycle configuration, call
|
77
|
-
# {#add_rule} inside a {#replace} block instead of an
|
77
|
+
# {#add_rule} inside a {#replace} block instead of an `#update` block:
|
78
78
|
#
|
79
|
-
#
|
80
|
-
#
|
81
|
-
#
|
82
|
-
#
|
83
|
-
#
|
79
|
+
# # replace all existing rules with the following
|
80
|
+
# bucket.lifecycle_configuration.replace do
|
81
|
+
# add_rule('backups/', :glacier_transition_time => 10)
|
82
|
+
# add_rule('temp/', :expiration_time => 30)
|
83
|
+
# end
|
84
84
|
#
|
85
|
-
#
|
85
|
+
# ## Removing Rules
|
86
86
|
#
|
87
87
|
# You can delete specific rules with {#remove_rule}.
|
88
88
|
#
|
89
|
-
#
|
90
|
-
#
|
91
|
-
#
|
92
|
-
#
|
89
|
+
# # delete all disabled rules
|
90
|
+
# bucket.lifecycle_configuration.update do
|
91
|
+
# rules.each do |rule|
|
92
|
+
# remove_rule(rule) if rule.disabled?
|
93
|
+
# end
|
93
94
|
# end
|
94
|
-
# end
|
95
95
|
#
|
96
96
|
# You can also remove all rules in a single call with {#clear}:
|
97
97
|
#
|
98
|
-
#
|
99
|
-
#
|
98
|
+
# # remove all rules from this lifecycle configuration
|
99
|
+
# bucket.lifecycle_configuration.clear
|
100
100
|
#
|
101
|
-
#
|
101
|
+
# ## Editing Existing Rules
|
102
102
|
#
|
103
103
|
# You can also make changes to existing rules.
|
104
104
|
#
|
105
|
-
#
|
106
|
-
#
|
107
|
-
#
|
108
|
-
#
|
105
|
+
# # change the expiration days to 10 for EVERY rule
|
106
|
+
# bucket.lifecycle_configuration.update do
|
107
|
+
# rules.each do |rule|
|
108
|
+
# rule.expiration_time = 10
|
109
|
+
# end
|
109
110
|
# end
|
110
|
-
# end
|
111
111
|
#
|
112
112
|
# Please be aware, if you add, remove or edit rules outside of an
|
113
|
-
# {#update} or {#replace} block, then you must call
|
113
|
+
# {#update} or {#replace} block, then you must call `#update` yourself
|
114
114
|
# or the changes will not be persisted.
|
115
115
|
#
|
116
116
|
class BucketLifecycleConfiguration
|
@@ -148,7 +148,7 @@ module AWS
|
|
148
148
|
#
|
149
149
|
# @option options [Boolean] :disabled (false) By default, all rules
|
150
150
|
# will have the status of enabled. You can override this default
|
151
|
-
# by passing
|
151
|
+
# by passing `:disabled` => true.
|
152
152
|
#
|
153
153
|
# @option options [Date, Integer] :expiration_time (nil) Indicates
|
154
154
|
# the lifetime for objects matching the given prefix.
|
@@ -179,17 +179,17 @@ module AWS
|
|
179
179
|
# Removes a single rule. You can pass a rule id or a {Rule}
|
180
180
|
# object.
|
181
181
|
#
|
182
|
-
#
|
183
|
-
#
|
184
|
-
#
|
185
|
-
#
|
182
|
+
# # remove a single rule by its ID
|
183
|
+
# bucket.lifecycle_configuration.update do
|
184
|
+
# remove_rule('rule-id')
|
185
|
+
# end
|
186
186
|
#
|
187
|
-
#
|
188
|
-
#
|
189
|
-
#
|
190
|
-
#
|
187
|
+
# # remove all disabled rules
|
188
|
+
# bucket.lifecycle_configuration.update do
|
189
|
+
# rules.each do |rule|
|
190
|
+
# remove_rule(rule) if rule.disabled?
|
191
|
+
# end
|
191
192
|
# end
|
192
|
-
# end
|
193
193
|
#
|
194
194
|
# If you call #remove_rule outside an update block
|
195
195
|
# you need to call #update to save the changes.
|
@@ -210,34 +210,34 @@ module AWS
|
|
210
210
|
|
211
211
|
# Saves changes made to this lifecycle configuration.
|
212
212
|
#
|
213
|
-
#
|
214
|
-
#
|
215
|
-
#
|
216
|
-
#
|
217
|
-
#
|
218
|
-
#
|
213
|
+
# # set the number of days before expiration for all rules to 10
|
214
|
+
# config = bucket.lifecycle_configuration
|
215
|
+
# config.rules.each do |rule|
|
216
|
+
# rule.expiration_time = 10
|
217
|
+
# end
|
218
|
+
# config.update
|
219
219
|
#
|
220
220
|
# You can call #update with a block. Changes are persisted at the
|
221
221
|
# end of the block.
|
222
222
|
#
|
223
|
-
#
|
224
|
-
#
|
225
|
-
#
|
226
|
-
#
|
223
|
+
# # shorter version of the example above
|
224
|
+
# bucket.lifecycle_configuration.update do
|
225
|
+
# rules.each {|rule| rule.expiration_time = 10 }
|
226
|
+
# end
|
227
227
|
#
|
228
228
|
# A block method for updating a BucketLifecycleConfiguration.
|
229
229
|
# All modifications made inside the block are persisted at the end of
|
230
230
|
# the block.
|
231
231
|
#
|
232
|
-
#
|
233
|
-
#
|
234
|
-
#
|
235
|
-
#
|
236
|
-
#
|
232
|
+
# # 1 request
|
233
|
+
# bucket.lifecycle_configuration.update do
|
234
|
+
# add_rule 'prefix/a', 10
|
235
|
+
# add_rule 'prefix/b', 5
|
236
|
+
# end
|
237
237
|
#
|
238
|
-
#
|
239
|
-
#
|
240
|
-
#
|
238
|
+
# # 2 requests
|
239
|
+
# bucket.lifecycle_configuration.add_rule 'prefix/a', 10
|
240
|
+
# bucket.lifecycle_configuration.add_rule 'prefix/b', 5
|
241
241
|
#
|
242
242
|
# @return [nil]
|
243
243
|
#
|
@@ -259,15 +259,14 @@ module AWS
|
|
259
259
|
# When the block is complete, a single call will be made to save
|
260
260
|
# the new rules.
|
261
261
|
#
|
262
|
-
#
|
262
|
+
# bucket.lifecycle_configuration.rules.size #=> 3
|
263
263
|
#
|
264
|
-
#
|
265
|
-
#
|
266
|
-
#
|
267
|
-
#
|
268
|
-
#
|
269
|
-
# bucket.lifecycle_configuration.rules.size #=> 1
|
264
|
+
# # replace the existing 3 rules with a single rule
|
265
|
+
# bucket.lifecycle_configuration.replace
|
266
|
+
# add_rule 'temp/', 10
|
267
|
+
# end
|
270
268
|
#
|
269
|
+
# bucket.lifecycle_configuration.rules.size #=> 1
|
271
270
|
def replace &block
|
272
271
|
@rules = []
|
273
272
|
update(&block)
|
@@ -326,11 +325,11 @@ module AWS
|
|
326
325
|
# Represents a single rule from an Amazon S3 bucket lifecycle
|
327
326
|
# configuration.
|
328
327
|
#
|
329
|
-
#
|
330
|
-
#
|
328
|
+
# # delete all objects with the prefix 'temporary/' after 10 days
|
329
|
+
# bucket.lifecycle_configuration.add_rule 'temporary/', 10
|
331
330
|
#
|
332
|
-
#
|
333
|
-
#
|
331
|
+
# # remove the rule created above
|
332
|
+
# bucket.lifecycle_configuration.remove_rule 'temporary/'
|
334
333
|
#
|
335
334
|
#
|
336
335
|
class Rule
|
@@ -50,7 +50,7 @@ module AWS
|
|
50
50
|
|
51
51
|
# @param [String] key
|
52
52
|
# @return [String,nil] Returns the tag for the given key. If there
|
53
|
-
# Returns
|
53
|
+
# Returns `nil` if the key does not exist.
|
54
54
|
def [] key
|
55
55
|
self.to_h[key]
|
56
56
|
end
|
@@ -74,6 +74,8 @@ module AWS
|
|
74
74
|
|
75
75
|
# Removes all tags from the bucket.
|
76
76
|
#
|
77
|
+
# @example
|
78
|
+
#
|
77
79
|
# bucket.tags.clear
|
78
80
|
# bucket.tags.to_h #=> {}
|
79
81
|
#
|
@@ -92,7 +94,7 @@ module AWS
|
|
92
94
|
alias_method :to_hash, :to_h
|
93
95
|
|
94
96
|
# @param [Hash] other
|
95
|
-
# @return [Boolean] Returns
|
97
|
+
# @return [Boolean] Returns `true` if the tags for this bucket match
|
96
98
|
# the passed hash.
|
97
99
|
def eql? other
|
98
100
|
self.to_h == other
|
data/lib/aws/s3/cipher_io.rb
CHANGED
@@ -44,15 +44,16 @@ module AWS
|
|
44
44
|
|
45
45
|
# @return [String] Returns the requested number of bytes. If no byte
|
46
46
|
# amount is given, it will return the entire body of encrypted data
|
47
|
-
def read bytes = nil
|
48
|
-
if bytes
|
47
|
+
def read bytes = nil, output_buffer = nil
|
48
|
+
data = if bytes
|
49
49
|
(@eof) ? nil : read_chunk(bytes)
|
50
50
|
else
|
51
|
-
(@eof) ? "" : read_all
|
51
|
+
(@eof) ? "" : read_all
|
52
52
|
end
|
53
|
+
output_buffer ? output_buffer.replace(data || '') : data
|
53
54
|
end
|
54
55
|
|
55
|
-
# @return [Boolean] Returns
|
56
|
+
# @return [Boolean] Returns `true` when the entire stream has been read.
|
56
57
|
def eof?
|
57
58
|
@eof
|
58
59
|
end
|
data/lib/aws/s3/client.rb
CHANGED
@@ -29,9 +29,7 @@ module AWS
|
|
29
29
|
|
30
30
|
XMLNS = "http://s3.amazonaws.com/doc/#{API_VERSION}/"
|
31
31
|
|
32
|
-
|
33
|
-
autoload :XML, 'xml'
|
34
|
-
end
|
32
|
+
autoload :XML, 'aws/s3/client/xml'
|
35
33
|
|
36
34
|
# @private
|
37
35
|
EMPTY_BODY_ERRORS = {
|
@@ -161,7 +159,6 @@ module AWS
|
|
161
159
|
bucket_method(:put_bucket_website, :put, 'website') do
|
162
160
|
|
163
161
|
configure_request do |req, options|
|
164
|
-
validate_bucket_name!(options[:bucket_name])
|
165
162
|
req.body = Nokogiri::XML::Builder.new do |xml|
|
166
163
|
xml.WebsiteConfiguration(:xmlns => XMLNS) do
|
167
164
|
|
@@ -221,10 +218,10 @@ module AWS
|
|
221
218
|
# @param [Hash] options
|
222
219
|
# @option options [required,String] :bucket_name
|
223
220
|
# @return [Core::Response]
|
224
|
-
# *
|
225
|
-
# *
|
226
|
-
# *
|
227
|
-
# *
|
221
|
+
# * `:index_document` - (Hash)
|
222
|
+
# * `:suffix` - (String)
|
223
|
+
# * `:error_document` - (Hash)
|
224
|
+
# * `:key` - (String)
|
228
225
|
bucket_method(:get_bucket_website, :get, 'website', XML::GetBucketWebsite)
|
229
226
|
|
230
227
|
# @overload delete_bucket_website(options = {})
|
@@ -292,16 +289,16 @@ module AWS
|
|
292
289
|
# @param [Hash] options
|
293
290
|
# @option options [required,String] :bucket_name
|
294
291
|
# @option options [required,Array<Hash>] :rules An array of rule hashes.
|
295
|
-
# *
|
292
|
+
# * `:id` - (String) A unique identifier for the rule. The ID
|
296
293
|
# value can be up to 255 characters long. The IDs help you find
|
297
294
|
# a rule in the configuration.
|
298
|
-
# *
|
295
|
+
# * `:allowed_methods` - (required,Array<String>) A list of HTTP
|
299
296
|
# methods that you want to allow the origin to execute.
|
300
297
|
# Each rule must identify at least one method.
|
301
|
-
# *
|
298
|
+
# * `:allowed_origins` - (required,Array<String>) A list of origins
|
302
299
|
# you want to allow cross-domain requests from. This can
|
303
300
|
# contain at most one * wild character.
|
304
|
-
# *
|
301
|
+
# * `:allowed_headers` - (Array<String>) A list of headers allowed
|
305
302
|
# in a pre-flight OPTIONS request via the
|
306
303
|
# Access-Control-Request-Headers header. Each header name
|
307
304
|
# specified in the Access-Control-Request-Headers header must
|
@@ -309,10 +306,10 @@ module AWS
|
|
309
306
|
# Amazon S3 will send only the allowed headers in a response
|
310
307
|
# that were requested. This can contain at most one * wild
|
311
308
|
# character.
|
312
|
-
# *
|
309
|
+
# * `:max_age_seconds` - (Integer) The time in seconds that your
|
313
310
|
# browser is to cache the preflight response for the specified
|
314
311
|
# resource.
|
315
|
-
# *
|
312
|
+
# * `:expose_headers` - (Array<String>) One or more headers in
|
316
313
|
# the response that you want customers to be able to access
|
317
314
|
# from their applications (for example, from a JavaScript
|
318
315
|
# XMLHttpRequest object).
|
@@ -472,7 +469,7 @@ module AWS
|
|
472
469
|
# @param [Hash] options
|
473
470
|
# @option options [required,String] :bucket_name
|
474
471
|
# @option options [required,String] :policy This can be a String
|
475
|
-
# or any object that responds to
|
472
|
+
# or any object that responds to `#to_json`.
|
476
473
|
# @return [Core::Response]
|
477
474
|
bucket_method(:set_bucket_policy, :put, 'policy') do
|
478
475
|
|
@@ -586,9 +583,9 @@ module AWS
|
|
586
583
|
# Sets the access control list for a bucket. You must specify an ACL
|
587
584
|
# via one of the following methods:
|
588
585
|
#
|
589
|
-
# * as a canned ACL (via
|
590
|
-
# * as a list of grants (via the
|
591
|
-
# * as an access control policy document (via
|
586
|
+
# * as a canned ACL (via `:acl`)
|
587
|
+
# * as a list of grants (via the `:grant_*` options)
|
588
|
+
# * as an access control policy document (via `:access_control_policy`)
|
592
589
|
#
|
593
590
|
# @example Using a canned acl
|
594
591
|
# s3_client.put_bucket_acl(
|
@@ -675,9 +672,9 @@ module AWS
|
|
675
672
|
# Sets the access control list for an object. You must specify an ACL
|
676
673
|
# via one of the following methods:
|
677
674
|
#
|
678
|
-
# * as a canned ACL (via
|
679
|
-
# * as a list of grants (via the
|
680
|
-
# * as an access control policy document (via
|
675
|
+
# * as a canned ACL (via `:acl`)
|
676
|
+
# * as a list of grants (via the `:grant_*` options)
|
677
|
+
# * as an access control policy document (via `:access_control_policy`)
|
681
678
|
#
|
682
679
|
# @example Using a canned acl
|
683
680
|
# s3_client.put_object_acl(
|
@@ -774,7 +771,7 @@ module AWS
|
|
774
771
|
# :data => 'This is the readme for ...',
|
775
772
|
# })
|
776
773
|
#
|
777
|
-
#
|
774
|
+
# ## Block Form
|
778
775
|
#
|
779
776
|
# In block form, this method yields a stream to the block that
|
780
777
|
# accepts data chunks. For example:
|
@@ -808,24 +805,24 @@ module AWS
|
|
808
805
|
# @option options [required,String,Pathname,File,IO] :data
|
809
806
|
# The data to upload. This can be provided as a string,
|
810
807
|
# a Pathname object, or any object that responds to
|
811
|
-
#
|
808
|
+
# `#read` and `#eof?` (e.g. IO, File, Tempfile, StringIO, etc).
|
812
809
|
# @option options [Integer] :content_length
|
813
810
|
# Required if you are using block form to write data or if it is
|
814
|
-
# not possible to determine the size of
|
811
|
+
# not possible to determine the size of `:data`. A best effort
|
815
812
|
# is made to determine the content length of strings, files,
|
816
813
|
# tempfiles, io objects, and any object that responds
|
817
|
-
# to
|
814
|
+
# to `#length` or `#size`.
|
818
815
|
# @option options [String] :website_redirect_location If the bucket is
|
819
816
|
# configured as a website, redirects requests for this object to
|
820
817
|
# another object in the same bucket or to an external URL.
|
821
818
|
# @option options [Hash] :metadata
|
822
819
|
# A hash of metadata to be included with the
|
823
820
|
# object. These will be sent to S3 as headers prefixed with
|
824
|
-
#
|
821
|
+
# `x-amz-meta`.
|
825
822
|
# @option options [Symbol] :acl (:private) A canned access
|
826
823
|
# control policy. Accepted values include:
|
827
|
-
# *
|
828
|
-
# *
|
824
|
+
# * `:private`
|
825
|
+
# * `:public_read`
|
829
826
|
# * ...
|
830
827
|
# @option options [String] :storage_class+ ('STANDARD')
|
831
828
|
# Controls whether Reduced Redundancy Storage is enabled for
|
@@ -834,7 +831,7 @@ module AWS
|
|
834
831
|
# @option options [Symbol,String] :server_side_encryption (nil) The
|
835
832
|
# algorithm used to encrypt the object on the server side
|
836
833
|
# (e.g. :aes256).
|
837
|
-
# object on the server side, e.g.
|
834
|
+
# object on the server side, e.g. `:aes256`)
|
838
835
|
# @option options [String] :cache_control
|
839
836
|
# Can be used to specify caching behavior.
|
840
837
|
# @option options [String] :content_disposition
|
@@ -842,7 +839,7 @@ module AWS
|
|
842
839
|
# @option options [String] :content_encoding
|
843
840
|
# Specifies the content encoding.
|
844
841
|
# @option options [String] :content_md5
|
845
|
-
# The base64 encoded content md5 of the
|
842
|
+
# The base64 encoded content md5 of the `:data`.
|
846
843
|
# @option options [String] :content_type
|
847
844
|
# Specifies the content type.
|
848
845
|
# @option options [String] :expires The date and time at which the
|
@@ -903,25 +900,25 @@ module AWS
|
|
903
900
|
# @option options [required,String] :bucket_name
|
904
901
|
# @option options [required,String] :key
|
905
902
|
# @option options [Time] :if_modified_since If specified, the
|
906
|
-
# response will contain an additional
|
903
|
+
# response will contain an additional `:modified` value that
|
907
904
|
# returns true if the object was modified after the given
|
908
|
-
# time. If
|
909
|
-
#
|
905
|
+
# time. If `:modified` is false, then the response
|
906
|
+
# `:data` value will be `nil`.
|
910
907
|
# @option options [Time] :if_unmodified_since If specified, the
|
911
|
-
# response will contain an additional
|
908
|
+
# response will contain an additional `:unmodified` value
|
912
909
|
# that is true if the object was not modified after the
|
913
|
-
# given time. If
|
914
|
-
# value will be
|
910
|
+
# given time. If `:unmodified` returns false, the `:data`
|
911
|
+
# value will be `nil`.
|
915
912
|
# @option options [String] :if_match If specified, the response
|
916
|
-
# will contain an additional
|
913
|
+
# will contain an additional `:matches` value that is true
|
917
914
|
# if the object ETag matches the value for this option. If
|
918
|
-
#
|
919
|
-
# response will be
|
915
|
+
# `:matches` is false, the `:data` value of the
|
916
|
+
# response will be `nil`.
|
920
917
|
# @option options [String] :if_none_match If specified, the
|
921
|
-
# response will contain an additional
|
918
|
+
# response will contain an additional `:matches` value that
|
922
919
|
# is true if and only if the object ETag matches the value for
|
923
|
-
# this option. If
|
924
|
-
# of the response will be
|
920
|
+
# this option. If `:matches` is true, the `:data` value
|
921
|
+
# of the response will be `nil`.
|
925
922
|
# @option options [Range<Integer>] :range A byte range of data to request.
|
926
923
|
# @return [Core::Response]
|
927
924
|
#
|
@@ -1150,31 +1147,34 @@ module AWS
|
|
1150
1147
|
# @overload delete_objects(options = {})
|
1151
1148
|
# @param [Hash] options
|
1152
1149
|
# @option options [required,String] :bucket_name
|
1153
|
-
# @option options [required,Array<
|
1150
|
+
# @option options [required,Array<Hash>] :objects Each entry should be
|
1151
|
+
# a hash with the following keys:
|
1152
|
+
# * `:key` - *required*
|
1153
|
+
# * `:version_id`
|
1154
1154
|
# @option options [Boolean] :quiet (true)
|
1155
1155
|
# @option options [String] :mfa
|
1156
1156
|
# @return [Core::Response]
|
1157
|
-
bucket_method(:delete_objects, :post, 'delete', XML::DeleteObjects,
|
1157
|
+
bucket_method(:delete_objects, :post, 'delete', XML::DeleteObjects,
|
1158
|
+
:header_options => { :mfa => "x-amz-mfa" }
|
1159
|
+
) do
|
1160
|
+
|
1158
1161
|
configure_request do |req, options|
|
1159
1162
|
|
1160
1163
|
super(req, options)
|
1161
1164
|
|
1162
|
-
|
1163
|
-
|
1164
|
-
|
1165
|
-
|
1166
|
-
|
1167
|
-
|
1168
|
-
|
1169
|
-
|
1170
|
-
|
1171
|
-
|
1165
|
+
req.body = Nokogiri::XML::Builder.new do |xml|
|
1166
|
+
xml.Delete do
|
1167
|
+
xml.Quiet(options.key?(:quiet) ? options[:quiet] : true)
|
1168
|
+
(options[:objects] || options[:keys]).each do |obj|
|
1169
|
+
xml.Object do
|
1170
|
+
xml.Key(obj[:key])
|
1171
|
+
xml.VersionId(obj[:version_id]) if obj[:version_id]
|
1172
|
+
end
|
1173
|
+
end
|
1174
|
+
end
|
1175
|
+
end.doc.root.to_xml
|
1172
1176
|
|
1173
|
-
|
1174
|
-
xml << "<Delete><Quiet>#{quiet}</Quiet>#{objects}</Delete>"
|
1175
|
-
|
1176
|
-
req.body = xml
|
1177
|
-
req.headers['content-md5'] = md5(xml)
|
1177
|
+
req.headers['content-md5'] = md5(req.body)
|
1178
1178
|
|
1179
1179
|
end
|
1180
1180
|
end
|
@@ -1188,7 +1188,7 @@ module AWS
|
|
1188
1188
|
# @option options [required,String,Pathname,File,IO] :data
|
1189
1189
|
# The data to upload. This can be provided as a string,
|
1190
1190
|
# a Pathname object, or any object that responds to
|
1191
|
-
#
|
1191
|
+
# `#read` and `#eof?` (e.g. IO, File, Tempfile, StringIO, etc).
|
1192
1192
|
# @return [Core::Response]
|
1193
1193
|
object_method(:upload_part, :put,
|
1194
1194
|
:header_options => {
|
@@ -1223,7 +1223,10 @@ module AWS
|
|
1223
1223
|
# @option options [required,String] :bucket_name
|
1224
1224
|
# @option options [required,String] :key
|
1225
1225
|
# @option options [required,String] :upload_id
|
1226
|
-
# @option options [required,Array<
|
1226
|
+
# @option options [required,Array<Hash>] :parts An array of hashes
|
1227
|
+
# with the following keys:
|
1228
|
+
# * `:part_number` [Integer] - *required*
|
1229
|
+
# * `:etag` [String] - *required*
|
1227
1230
|
# @return [Core::Response]
|
1228
1231
|
object_method(:complete_multipart_upload, :post,
|
1229
1232
|
XML::CompleteMultipartUpload) do
|
@@ -1232,14 +1235,18 @@ module AWS
|
|
1232
1235
|
validate_parts!(options[:parts])
|
1233
1236
|
super(req, options)
|
1234
1237
|
req.add_param('uploadId', options[:upload_id])
|
1235
|
-
|
1236
|
-
|
1237
|
-
|
1238
|
-
|
1239
|
-
|
1240
|
-
|
1241
|
-
|
1242
|
-
|
1238
|
+
|
1239
|
+
req.body = Nokogiri::XML::Builder.new do |xml|
|
1240
|
+
xml.CompleteMultipartUpload do
|
1241
|
+
options[:parts].each do |part|
|
1242
|
+
xml.Part do
|
1243
|
+
xml.PartNumber(part[:part_number])
|
1244
|
+
xml.ETag(part[:etag])
|
1245
|
+
end
|
1246
|
+
end
|
1247
|
+
end
|
1248
|
+
end.doc.root.to_xml
|
1249
|
+
|
1243
1250
|
end
|
1244
1251
|
|
1245
1252
|
process_response do |resp|
|
@@ -1413,7 +1420,7 @@ module AWS
|
|
1413
1420
|
end
|
1414
1421
|
|
1415
1422
|
# @param [String] possible_xml
|
1416
|
-
# @return [Boolean] Returns
|
1423
|
+
# @return [Boolean] Returns `true` if the given string is a valid xml
|
1417
1424
|
# document.
|
1418
1425
|
def is_xml? possible_xml
|
1419
1426
|
begin
|
@@ -1466,6 +1473,7 @@ module AWS
|
|
1466
1473
|
'content-type' => :content_type,
|
1467
1474
|
'content-encoding' => :content_encoding,
|
1468
1475
|
'cache-control' => :cache_control,
|
1476
|
+
'expires' => :expires,
|
1469
1477
|
'etag' => :etag,
|
1470
1478
|
'x-amz-website-redirect-location' => :website_redirect_location,
|
1471
1479
|
'accept-ranges' => :accept_ranges,
|
@@ -1496,16 +1504,16 @@ module AWS
|
|
1496
1504
|
validate_bucket_name!(bucket_name) rescue false
|
1497
1505
|
end
|
1498
1506
|
|
1499
|
-
# Returns true if the given
|
1507
|
+
# Returns true if the given `bucket_name` is DNS compatible.
|
1500
1508
|
#
|
1501
1509
|
# DNS compatible bucket names may be accessed like:
|
1502
1510
|
#
|
1503
|
-
#
|
1511
|
+
# http://dns.compat.bucket.name.s3.amazonaws.com/
|
1504
1512
|
#
|
1505
1513
|
# Whereas non-dns compatible bucket names must place the bucket
|
1506
1514
|
# name in the url path, like:
|
1507
1515
|
#
|
1508
|
-
#
|
1516
|
+
# http://s3.amazonaws.com/dns_incompat_bucket_name/
|
1509
1517
|
#
|
1510
1518
|
# @return [Boolean] Returns true if the given bucket name may be
|
1511
1519
|
# is dns compatible.
|
@@ -1515,14 +1523,15 @@ module AWS
|
|
1515
1523
|
return false if
|
1516
1524
|
!valid_bucket_name?(bucket_name) or
|
1517
1525
|
|
1518
|
-
# Bucket names should not contain underscores (_)
|
1519
|
-
bucket_name["_"] or
|
1520
|
-
|
1521
1526
|
# Bucket names should be between 3 and 63 characters long
|
1522
1527
|
bucket_name.size > 63 or
|
1523
1528
|
|
1524
|
-
# Bucket names
|
1525
|
-
|
1529
|
+
# Bucket names must only contain lowercase letters, numbers, dots, and dashes
|
1530
|
+
# and must start and end with a lowercase letter or a number
|
1531
|
+
bucket_name !~ /^[a-z0-9][a-z0-9.-]+[a-z0-9]$/ or
|
1532
|
+
|
1533
|
+
# Bucket names should not be formatted like an IP address (e.g., 192.168.5.4)
|
1534
|
+
bucket_name =~ /(\d+\.){3}\d+/ or
|
1526
1535
|
|
1527
1536
|
# Bucket names cannot contain two, adjacent periods
|
1528
1537
|
bucket_name['..'] or
|
@@ -1585,15 +1594,11 @@ module AWS
|
|
1585
1594
|
case
|
1586
1595
|
when bucket_name.nil? || bucket_name == ''
|
1587
1596
|
'may not be blank'
|
1588
|
-
when bucket_name !~ /^[
|
1589
|
-
'may only contain lowercase letters, numbers, periods (.), ' +
|
1597
|
+
when bucket_name !~ /^[A-Za-z0-9._\-]+$/
|
1598
|
+
'may only contain uppercase letters, lowercase letters, numbers, periods (.), ' +
|
1590
1599
|
'underscores (_), and dashes (-)'
|
1591
|
-
when bucket_name !~ /^[a-z0-9]/
|
1592
|
-
'must start with a letter or a number'
|
1593
1600
|
when !(3..255).include?(bucket_name.size)
|
1594
1601
|
'must be between 3 and 255 characters long'
|
1595
|
-
when bucket_name =~ /(\d+\.){3}\d+/
|
1596
|
-
'must not be formatted like an IP address (e.g., 192.168.5.4)'
|
1597
1602
|
when bucket_name =~ /\n/
|
1598
1603
|
'must not contain a newline character'
|
1599
1604
|
end
|