fog 1.10.1 → 1.11.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.travis.yml +1 -0
- data/Gemfile +2 -0
- data/README.md +4 -3
- data/changelog.txt +207 -0
- data/fog.gemspec +4 -3
- data/lib/fog/aws.rb +0 -2
- data/lib/fog/aws/dynamodb.rb +1 -1
- data/lib/fog/aws/elasticache.rb +0 -2
- data/lib/fog/aws/iam.rb +1 -0
- data/lib/fog/aws/models/compute/volume.rb +1 -0
- data/lib/fog/aws/models/iam/user.rb +1 -0
- data/lib/fog/aws/models/storage/directories.rb +1 -1
- data/lib/fog/aws/models/storage/directory.rb +20 -17
- data/lib/fog/aws/models/storage/file.rb +4 -5
- data/lib/fog/aws/parsers/iam/get_user.rb +2 -0
- data/lib/fog/aws/parsers/iam/list_users.rb +2 -0
- data/lib/fog/aws/requests/cdn/delete_streaming_distribution.rb +2 -2
- data/lib/fog/aws/requests/cdn/put_distribution_config.rb +3 -3
- data/lib/fog/aws/requests/cloud_formation/update_stack.rb +3 -3
- data/lib/fog/aws/requests/cloud_formation/validate_template.rb +5 -5
- data/lib/fog/aws/requests/iam/create_user.rb +5 -4
- data/lib/fog/aws/requests/iam/get_user.rb +5 -4
- data/lib/fog/aws/requests/iam/list_users.rb +5 -4
- data/lib/fog/aws/requests/rds/create_db_instance.rb +25 -25
- data/lib/fog/aws/requests/storage/abort_multipart_upload.rb +3 -3
- data/lib/fog/aws/requests/storage/complete_multipart_upload.rb +2 -2
- data/lib/fog/aws/requests/storage/copy_object.rb +2 -2
- data/lib/fog/aws/requests/storage/delete_bucket.rb +1 -1
- data/lib/fog/aws/requests/storage/delete_bucket_cors.rb +1 -1
- data/lib/fog/aws/requests/storage/delete_bucket_lifecycle.rb +1 -1
- data/lib/fog/aws/requests/storage/delete_bucket_policy.rb +1 -1
- data/lib/fog/aws/requests/storage/delete_bucket_website.rb +1 -1
- data/lib/fog/aws/requests/storage/delete_multiple_objects.rb +1 -1
- data/lib/fog/aws/requests/storage/delete_object.rb +1 -1
- data/lib/fog/aws/requests/storage/get_bucket.rb +1 -1
- data/lib/fog/aws/requests/storage/get_bucket_acl.rb +1 -1
- data/lib/fog/aws/requests/storage/get_bucket_cors.rb +1 -1
- data/lib/fog/aws/requests/storage/get_bucket_lifecycle.rb +1 -1
- data/lib/fog/aws/requests/storage/get_bucket_location.rb +1 -1
- data/lib/fog/aws/requests/storage/get_bucket_logging.rb +1 -1
- data/lib/fog/aws/requests/storage/get_bucket_object_versions.rb +1 -1
- data/lib/fog/aws/requests/storage/get_bucket_policy.rb +1 -1
- data/lib/fog/aws/requests/storage/get_bucket_versioning.rb +1 -1
- data/lib/fog/aws/requests/storage/get_bucket_website.rb +1 -1
- data/lib/fog/aws/requests/storage/get_object.rb +2 -2
- data/lib/fog/aws/requests/storage/get_object_acl.rb +2 -2
- data/lib/fog/aws/requests/storage/get_object_http_url.rb +1 -19
- data/lib/fog/aws/requests/storage/get_object_torrent.rb +2 -2
- data/lib/fog/aws/requests/storage/get_object_url.rb +5 -14
- data/lib/fog/aws/requests/storage/get_request_payment.rb +1 -1
- data/lib/fog/aws/requests/storage/head_object.rb +2 -2
- data/lib/fog/aws/requests/storage/initiate_multipart_upload.rb +2 -2
- data/lib/fog/aws/requests/storage/list_multipart_uploads.rb +7 -8
- data/lib/fog/aws/requests/storage/list_parts.rb +2 -2
- data/lib/fog/aws/requests/storage/put_bucket.rb +1 -1
- data/lib/fog/aws/requests/storage/put_bucket_acl.rb +1 -1
- data/lib/fog/aws/requests/storage/put_bucket_cors.rb +1 -1
- data/lib/fog/aws/requests/storage/put_bucket_lifecycle.rb +1 -1
- data/lib/fog/aws/requests/storage/put_bucket_logging.rb +1 -1
- data/lib/fog/aws/requests/storage/put_bucket_policy.rb +1 -1
- data/lib/fog/aws/requests/storage/put_bucket_versioning.rb +1 -1
- data/lib/fog/aws/requests/storage/put_bucket_website.rb +1 -1
- data/lib/fog/aws/requests/storage/put_object.rb +2 -2
- data/lib/fog/aws/requests/storage/put_object_acl.rb +8 -8
- data/lib/fog/aws/requests/storage/put_object_url.rb +5 -7
- data/lib/fog/aws/requests/storage/put_request_payment.rb +1 -1
- data/lib/fog/aws/requests/storage/upload_part.rb +2 -2
- data/lib/fog/aws/storage.rb +201 -97
- data/lib/fog/bin/google.rb +47 -1
- data/lib/fog/bluebox/models/compute/server.rb +3 -1
- data/lib/fog/brightbox/compute.rb +11 -26
- data/lib/fog/brightbox/compute/image_selector.rb +45 -0
- data/lib/fog/cloudstack/compute.rb +70 -2
- data/lib/fog/cloudstack/models/compute/disk_offering.rb +46 -0
- data/lib/fog/cloudstack/models/compute/disk_offerings.rb +27 -0
- data/lib/fog/cloudstack/models/compute/image.rb +1 -1
- data/lib/fog/cloudstack/models/compute/servers.rb +3 -2
- data/lib/fog/cloudstack/requests/compute/create_disk_offering.rb +51 -0
- data/lib/fog/cloudstack/requests/compute/delete_disk_offering.rb +31 -0
- data/lib/fog/cloudstack/requests/compute/delete_snapshot.rb +44 -2
- data/lib/fog/cloudstack/requests/compute/list_disk_offerings.rb +9 -0
- data/lib/fog/cloudstack/requests/compute/list_os_types.rb +9 -0
- data/lib/fog/cloudstack/requests/compute/list_snapshots.rb +21 -0
- data/lib/fog/core/errors.rb +3 -0
- data/lib/fog/core/json.rb +48 -7
- data/lib/fog/core/model.rb +11 -10
- data/lib/fog/core/service.rb +1 -1
- data/lib/fog/digitalocean/CHANGELOG.md +1 -1
- data/lib/fog/dreamhost/dns.rb +1 -3
- data/lib/fog/google.rb +1 -0
- data/lib/fog/google/compute.rb +131 -0
- data/lib/fog/google/models/compute/flavor.rb +24 -0
- data/lib/fog/google/models/compute/flavors.rb +28 -0
- data/lib/fog/google/models/compute/image.rb +19 -0
- data/lib/fog/google/models/compute/images.rb +28 -0
- data/lib/fog/google/models/compute/server.rb +80 -0
- data/lib/fog/google/models/compute/servers.rb +61 -0
- data/lib/fog/google/requests/compute/delete_disk.rb +31 -0
- data/lib/fog/google/requests/compute/delete_firewall.rb +30 -0
- data/lib/fog/google/requests/compute/delete_image.rb +30 -0
- data/lib/fog/google/requests/compute/delete_network.rb +30 -0
- data/lib/fog/google/requests/compute/delete_operation.rb +30 -0
- data/lib/fog/google/requests/compute/delete_server.rb +40 -0
- data/lib/fog/google/requests/compute/get_disk.rb +31 -0
- data/lib/fog/google/requests/compute/get_firewall.rb +30 -0
- data/lib/fog/google/requests/compute/get_image.rb +30 -0
- data/lib/fog/google/requests/compute/get_machine_type.rb +30 -0
- data/lib/fog/google/requests/compute/get_network.rb +30 -0
- data/lib/fog/google/requests/compute/get_server.rb +31 -0
- data/lib/fog/google/requests/compute/get_zone.rb +30 -0
- data/lib/fog/google/requests/compute/insert_disk.rb +35 -0
- data/lib/fog/google/requests/compute/insert_firewall.rb +37 -0
- data/lib/fog/google/requests/compute/insert_image.rb +38 -0
- data/lib/fog/google/requests/compute/insert_network.rb +34 -0
- data/lib/fog/google/requests/compute/insert_server.rb +49 -0
- data/lib/fog/google/requests/compute/list_disks.rb +30 -0
- data/lib/fog/google/requests/compute/list_firewalls.rb +29 -0
- data/lib/fog/google/requests/compute/list_global_operations.rb +28 -0
- data/lib/fog/google/requests/compute/list_images.rb +29 -0
- data/lib/fog/google/requests/compute/list_machine_types.rb +29 -0
- data/lib/fog/google/requests/compute/list_networks.rb +29 -0
- data/lib/fog/google/requests/compute/list_servers.rb +30 -0
- data/lib/fog/google/requests/compute/list_zone_operations.rb +28 -0
- data/lib/fog/google/requests/compute/list_zones.rb +29 -0
- data/lib/fog/google/requests/compute/set_metadata.rb +36 -0
- data/lib/fog/hp.rb +1 -1
- data/lib/fog/hp/storage.rb +1 -1
- data/lib/fog/internet_archive/models/storage/ia_attributes.rb +1 -1
- data/lib/fog/internet_archive/requests/storage/head_object.rb +1 -2
- data/lib/fog/internet_archive/requests/storage/list_multipart_uploads.rb +5 -6
- data/lib/fog/openstack.rb +29 -1
- data/lib/fog/openstack/CHANGELOG.md +1 -1
- data/lib/fog/openstack/compute.rb +3 -2
- data/lib/fog/openstack/identity.rb +1 -5
- data/lib/fog/openstack/image.rb +8 -9
- data/lib/fog/openstack/models/compute/server.rb +24 -0
- data/lib/fog/openstack/network.rb +7 -28
- data/lib/fog/openstack/requests/compute/allocate_address.rb +1 -1
- data/lib/fog/openstack/requests/compute/attach_volume.rb +11 -6
- data/lib/fog/openstack/requests/compute/boot_from_snapshot.rb +1 -1
- data/lib/fog/openstack/requests/compute/create_flavor.rb +1 -1
- data/lib/fog/openstack/requests/compute/create_key_pair.rb +1 -1
- data/lib/fog/openstack/requests/compute/create_security_group.rb +1 -1
- data/lib/fog/openstack/requests/compute/create_security_group_rule.rb +1 -1
- data/lib/fog/openstack/requests/compute/create_volume.rb +15 -14
- data/lib/fog/openstack/requests/compute/create_volume_snapshot.rb +1 -1
- data/lib/fog/openstack/requests/compute/delete_volume.rb +9 -2
- data/lib/fog/openstack/requests/compute/detach_volume.rb +7 -2
- data/lib/fog/openstack/requests/compute/get_server_volumes.rb +10 -0
- data/lib/fog/openstack/requests/compute/get_volume_details.rb +7 -16
- data/lib/fog/openstack/requests/compute/list_tenants.rb +1 -1
- data/lib/fog/openstack/requests/compute/list_volumes.rb +4 -26
- data/lib/fog/openstack/requests/compute/revert_resize_server.rb +2 -2
- data/lib/fog/openstack/requests/compute/update_quota.rb +1 -1
- data/lib/fog/openstack/requests/identity/create_ec2_credential.rb +1 -1
- data/lib/fog/openstack/requests/identity/create_role.rb +1 -1
- data/lib/fog/openstack/requests/identity/create_user.rb +1 -1
- data/lib/fog/openstack/requests/identity/update_user.rb +1 -1
- data/lib/fog/openstack/requests/image/update_image_members.rb +1 -1
- data/lib/fog/openstack/requests/volume/create_volume.rb +1 -1
- data/lib/fog/openstack/requests/volume/create_volume_snapshot.rb +1 -1
- data/lib/fog/openstack/requests/volume/get_quota.rb +31 -0
- data/lib/fog/openstack/requests/volume/get_quota_defaults.rb +31 -0
- data/lib/fog/openstack/requests/volume/update_quota.rb +32 -0
- data/lib/fog/openstack/volume.rb +11 -7
- data/lib/fog/rackspace.rb +11 -5
- data/lib/fog/rackspace/block_storage.rb +2 -1
- data/lib/fog/rackspace/cdn.rb +15 -15
- data/lib/fog/rackspace/compute.rb +2 -2
- data/lib/fog/rackspace/compute_v2.rb +8 -5
- data/lib/fog/rackspace/databases.rb +2 -1
- data/lib/fog/rackspace/dns.rb +2 -1
- data/lib/fog/rackspace/errors.rb +27 -0
- data/lib/fog/rackspace/load_balancers.rb +2 -1
- data/lib/fog/rackspace/mock_data.rb +5 -6
- data/lib/fog/rackspace/models/block_storage/snapshot.rb +8 -8
- data/lib/fog/rackspace/models/block_storage/snapshots.rb +8 -8
- data/lib/fog/rackspace/models/block_storage/volume.rb +16 -16
- data/lib/fog/rackspace/models/block_storage/volume_types.rb +8 -8
- data/lib/fog/rackspace/models/block_storage/volumes.rb +8 -8
- data/lib/fog/rackspace/models/compute_v2/attachment.rb +8 -8
- data/lib/fog/rackspace/models/compute_v2/attachments.rb +8 -8
- data/lib/fog/rackspace/models/compute_v2/flavors.rb +8 -8
- data/lib/fog/rackspace/models/compute_v2/image.rb +8 -8
- data/lib/fog/rackspace/models/compute_v2/images.rb +8 -8
- data/lib/fog/rackspace/models/compute_v2/metadata.rb +12 -12
- data/lib/fog/rackspace/models/compute_v2/metadatum.rb +8 -8
- data/lib/fog/rackspace/models/compute_v2/server.rb +94 -55
- data/lib/fog/rackspace/models/compute_v2/servers.rb +12 -12
- data/lib/fog/rackspace/models/dns/records.rb +1 -1
- data/lib/fog/rackspace/models/dns/zones.rb +1 -1
- data/lib/fog/rackspace/models/storage/account.rb +8 -8
- data/lib/fog/rackspace/models/storage/directories.rb +8 -8
- data/lib/fog/rackspace/models/storage/directory.rb +32 -32
- data/lib/fog/rackspace/models/storage/file.rb +36 -36
- data/lib/fog/rackspace/models/storage/files.rb +20 -20
- data/lib/fog/rackspace/requests/block_storage/create_snapshot.rb +4 -4
- data/lib/fog/rackspace/requests/block_storage/create_volume.rb +4 -4
- data/lib/fog/rackspace/requests/block_storage/delete_snapshot.rb +4 -4
- data/lib/fog/rackspace/requests/block_storage/delete_volume.rb +4 -4
- data/lib/fog/rackspace/requests/block_storage/get_snapshot.rb +4 -4
- data/lib/fog/rackspace/requests/block_storage/get_volume.rb +4 -4
- data/lib/fog/rackspace/requests/block_storage/get_volume_type.rb +4 -4
- data/lib/fog/rackspace/requests/block_storage/list_snapshots.rb +4 -4
- data/lib/fog/rackspace/requests/block_storage/list_volume_types.rb +4 -4
- data/lib/fog/rackspace/requests/block_storage/list_volumes.rb +4 -4
- data/lib/fog/rackspace/requests/cdn/delete_object.rb +4 -4
- data/lib/fog/rackspace/requests/cdn/get_containers.rb +4 -4
- data/lib/fog/rackspace/requests/cdn/head_container.rb +4 -4
- data/lib/fog/rackspace/requests/cdn/post_container.rb +4 -4
- data/lib/fog/rackspace/requests/cdn/put_container.rb +4 -4
- data/lib/fog/rackspace/requests/compute/delete_image.rb +1 -1
- data/lib/fog/rackspace/requests/compute_v2/attach_volume.rb +4 -4
- data/lib/fog/rackspace/requests/compute_v2/change_server_password.rb +4 -4
- data/lib/fog/rackspace/requests/compute_v2/confirm_resize_server.rb +4 -4
- data/lib/fog/rackspace/requests/compute_v2/create_image.rb +4 -4
- data/lib/fog/rackspace/requests/compute_v2/create_server.rb +11 -5
- data/lib/fog/rackspace/requests/compute_v2/delete_attachment.rb +4 -4
- data/lib/fog/rackspace/requests/compute_v2/delete_image.rb +5 -4
- data/lib/fog/rackspace/requests/compute_v2/delete_metadata_item.rb +4 -4
- data/lib/fog/rackspace/requests/compute_v2/delete_server.rb +4 -4
- data/lib/fog/rackspace/requests/compute_v2/get_attachment.rb +4 -4
- data/lib/fog/rackspace/requests/compute_v2/get_flavor.rb +4 -4
- data/lib/fog/rackspace/requests/compute_v2/get_image.rb +4 -4
- data/lib/fog/rackspace/requests/compute_v2/get_metadata_item.rb +4 -4
- data/lib/fog/rackspace/requests/compute_v2/get_server.rb +4 -4
- data/lib/fog/rackspace/requests/compute_v2/list_addresses.rb +4 -4
- data/lib/fog/rackspace/requests/compute_v2/list_addresses_by_network.rb +4 -4
- data/lib/fog/rackspace/requests/compute_v2/list_attachments.rb +4 -4
- data/lib/fog/rackspace/requests/compute_v2/list_flavors.rb +4 -4
- data/lib/fog/rackspace/requests/compute_v2/list_images.rb +4 -4
- data/lib/fog/rackspace/requests/compute_v2/list_metadata.rb +4 -4
- data/lib/fog/rackspace/requests/compute_v2/list_servers.rb +4 -4
- data/lib/fog/rackspace/requests/compute_v2/reboot_server.rb +4 -4
- data/lib/fog/rackspace/requests/compute_v2/rebuild_server.rb +4 -4
- data/lib/fog/rackspace/requests/compute_v2/rescue_server.rb +43 -0
- data/lib/fog/rackspace/requests/compute_v2/resize_server.rb +4 -4
- data/lib/fog/rackspace/requests/compute_v2/revert_resize_server.rb +4 -4
- data/lib/fog/rackspace/requests/compute_v2/set_metadata.rb +4 -4
- data/lib/fog/rackspace/requests/compute_v2/set_metadata_item.rb +4 -4
- data/lib/fog/rackspace/requests/compute_v2/unrescue_server.rb +40 -0
- data/lib/fog/rackspace/requests/compute_v2/update_metadata.rb +4 -4
- data/lib/fog/rackspace/requests/compute_v2/update_server.rb +4 -4
- data/lib/fog/rackspace/requests/storage/copy_object.rb +4 -4
- data/lib/fog/rackspace/requests/storage/delete_container.rb +4 -4
- data/lib/fog/rackspace/requests/storage/delete_object.rb +4 -4
- data/lib/fog/rackspace/requests/storage/get_container.rb +4 -4
- data/lib/fog/rackspace/requests/storage/get_containers.rb +4 -4
- data/lib/fog/rackspace/requests/storage/get_object.rb +4 -4
- data/lib/fog/rackspace/requests/storage/get_object_https_url.rb +4 -4
- data/lib/fog/rackspace/requests/storage/head_container.rb +4 -4
- data/lib/fog/rackspace/requests/storage/head_containers.rb +4 -4
- data/lib/fog/rackspace/requests/storage/head_object.rb +4 -4
- data/lib/fog/rackspace/requests/storage/post_set_meta_temp_url_key.rb +4 -4
- data/lib/fog/rackspace/requests/storage/put_container.rb +4 -4
- data/lib/fog/rackspace/requests/storage/put_object.rb +4 -4
- data/lib/fog/rackspace/requests/storage/put_object_manifest.rb +4 -4
- data/lib/fog/rackspace/service.rb +1 -1
- data/lib/fog/rackspace/storage.rb +12 -6
- data/lib/fog/riakcs.rb +3 -3
- data/lib/fog/riakcs/provisioning.rb +1 -3
- data/lib/fog/riakcs/requests/provisioning/create_user.rb +2 -2
- data/lib/fog/riakcs/requests/provisioning/get_user.rb +1 -1
- data/lib/fog/riakcs/requests/provisioning/list_users.rb +1 -1
- data/lib/fog/riakcs/requests/usage/get_usage.rb +1 -1
- data/lib/fog/riakcs/usage.rb +0 -1
- data/lib/fog/version.rb +1 -1
- data/lib/fog/vsphere/compute.rb +21 -14
- data/lib/fog/vsphere/models/compute/networks.rb +2 -2
- data/lib/fog/vsphere/models/compute/server.rb +10 -0
- data/lib/fog/vsphere/requests/compute/get_resource_pool.rb +1 -1
- data/lib/fog/vsphere/requests/compute/get_template.rb +16 -0
- data/lib/fog/vsphere/requests/compute/list_datacenters.rb +1 -1
- data/lib/fog/vsphere/requests/compute/list_templates.rb +49 -0
- data/lib/fog/vsphere/requests/compute/list_virtual_machines.rb +9 -6
- data/lib/fog/vsphere/requests/compute/vm_clone.rb +41 -27
- data/lib/fog/xenserver/CHANGELOG.md +1 -1
- data/lib/fog/xenserver/models/compute/network.rb +2 -2
- data/lib/tasks/changelog_task.rb +2 -1
- data/tests/aws/models/storage/directory_tests.rb +41 -5
- data/tests/aws/models/storage/file_tests.rb +1 -2
- data/tests/aws/models/storage/files_tests.rb +6 -4
- data/tests/aws/models/storage/url_tests.rb +7 -5
- data/tests/aws/models/storage/version_tests.rb +2 -2
- data/tests/aws/models/storage/versions_tests.rb +5 -5
- data/tests/aws/requests/iam/user_tests.rb +10 -8
- data/tests/aws/requests/storage/multipart_upload_tests.rb +1 -1
- data/tests/aws/requests/storage/object_tests.rb +15 -13
- data/tests/brightbox/compute/image_selector_tests.rb +103 -0
- data/tests/cloudstack/compute/models/disk_offering_tests.rb +5 -0
- data/tests/cloudstack/compute/models/snapshot_tests.rb +5 -20
- data/tests/cloudstack/requests/disk_offering_tests.rb +3 -3
- data/tests/cloudstack/requests/os_type_tests.rb +2 -3
- data/tests/compute/helper.rb +9 -0
- data/tests/core/json_tests.rb +62 -0
- data/tests/dynect/requests/dns/dns_tests.rb +0 -3
- data/tests/google/models/compute/server_tests.rb +24 -0
- data/tests/google/requests/compute/disk_tests.rb +88 -0
- data/tests/google/requests/compute/firewall_tests.rb +85 -0
- data/tests/google/requests/compute/image_tests.rb +80 -0
- data/tests/google/requests/compute/network_tests.rb +74 -0
- data/tests/google/requests/compute/operation_tests.rb +19 -0
- data/tests/google/requests/compute/server_tests.rb +84 -0
- data/tests/google/requests/compute/zone_tests.rb +46 -0
- data/tests/helpers/mock_helper.rb +4 -0
- data/tests/openstack/models/compute/server_tests.rb +91 -1
- data/tests/openstack/requests/compute/volume_tests.rb +11 -9
- data/tests/openstack/requests/volume/quota_tests.rb +51 -0
- data/tests/openstack/version_tests.rb +55 -0
- data/tests/rackspace/helper.rb +10 -0
- data/tests/rackspace/models/compute_v2/server_tests.rb +26 -1
- data/tests/rackspace/requests/compute/image_tests.rb +1 -1
- data/tests/rackspace/requests/compute_v2/image_tests.rb +2 -2
- data/tests/rackspace/requests/compute_v2/server_tests.rb +13 -0
- data/tests/rackspace/requests/dns/dns_tests.rb +1 -1
- data/tests/rackspace/requests/dns/records_tests.rb +3 -3
- data/tests/vsphere/requests/compute/vm_clone_tests.rb +10 -0
- metadata +109 -747
@@ -33,10 +33,10 @@ module Fog
|
|
33
33
|
request({
|
34
34
|
:expects => 200,
|
35
35
|
:headers => {},
|
36
|
-
:
|
36
|
+
:bucket_name => bucket_name,
|
37
|
+
:object_name => object_name,
|
37
38
|
:idempotent => true,
|
38
39
|
:method => 'GET',
|
39
|
-
:path => CGI.escape(object_name),
|
40
40
|
:query => {'torrent' => nil}
|
41
41
|
})
|
42
42
|
end
|
@@ -11,20 +11,11 @@ module Fog
|
|
11
11
|
unless object_name
|
12
12
|
raise ArgumentError.new('object_name is required')
|
13
13
|
end
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
scheme_host_path_query({
|
20
|
-
:scheme => options[:scheme],
|
21
|
-
:headers => {},
|
22
|
-
:host => host,
|
23
|
-
:port => @port,
|
24
|
-
:method => 'GET',
|
25
|
-
:path => path,
|
26
|
-
:query => options[:query]
|
27
|
-
}, expires)
|
14
|
+
signed_url(options.merge({
|
15
|
+
:bucket_name => bucket_name,
|
16
|
+
:object_name => object_name,
|
17
|
+
:method => 'GET'
|
18
|
+
}), expires)
|
28
19
|
end
|
29
20
|
end
|
30
21
|
|
@@ -42,10 +42,10 @@ module Fog
|
|
42
42
|
request({
|
43
43
|
:expects => 200,
|
44
44
|
:headers => headers,
|
45
|
-
:
|
45
|
+
:bucket_name => bucket_name,
|
46
|
+
:object_name => object_name,
|
46
47
|
:idempotent => true,
|
47
48
|
:method => 'HEAD',
|
48
|
-
:path => CGI.escape(object_name),
|
49
49
|
:query => query
|
50
50
|
})
|
51
51
|
end
|
@@ -30,10 +30,10 @@ module Fog
|
|
30
30
|
request({
|
31
31
|
:expects => 200,
|
32
32
|
:headers => options,
|
33
|
-
:
|
33
|
+
:bucket_name => bucket_name,
|
34
|
+
:object_name => object_name,
|
34
35
|
:method => 'POST',
|
35
36
|
:parser => Fog::Parsers::Storage::AWS::InitiateMultipartUpload.new,
|
36
|
-
:path => CGI.escape(object_name),
|
37
37
|
:query => {'uploads' => nil}
|
38
38
|
})
|
39
39
|
end
|
@@ -7,16 +7,15 @@ module Fog
|
|
7
7
|
|
8
8
|
# List multipart uploads for a bucket
|
9
9
|
#
|
10
|
-
# @param
|
11
|
-
# @param
|
12
|
-
# @
|
13
|
-
# @option options
|
14
|
-
# @option options
|
15
|
-
# @option options upload-id-marker [String] limits uploads to only those that appear lexicographically after this upload id.
|
10
|
+
# @param [String] bucket_name Name of bucket to list multipart uploads for
|
11
|
+
# @param [Hash] options config arguments for list. Defaults to {}.
|
12
|
+
# @option options [String] key-marker limits parts to only those that appear lexicographically after this key.
|
13
|
+
# @option options [Integer] max-uploads limits number of uploads returned
|
14
|
+
# @option options [String] upload-id-marker limits uploads to only those that appear lexicographically after this upload id.
|
16
15
|
#
|
17
16
|
# @return [Excon::Response] response:
|
18
17
|
# * body [Hash]:
|
19
|
-
# * Bucket [
|
18
|
+
# * Bucket [String] Bucket where the multipart upload was initiated
|
20
19
|
# * IsTruncated [Boolean] Whether or not the listing is truncated
|
21
20
|
# * KeyMarker [String] first key in list, only upload ids after this lexographically will appear
|
22
21
|
# * MaxUploads [Integer] Maximum results to return
|
@@ -41,7 +40,7 @@ module Fog
|
|
41
40
|
request({
|
42
41
|
:expects => 200,
|
43
42
|
:headers => {},
|
44
|
-
:
|
43
|
+
:bucket_name => bucket_name,
|
45
44
|
:idempotent => true,
|
46
45
|
:method => 'GET',
|
47
46
|
:parser => Fog::Parsers::Storage::AWS::ListMultipartUploads.new,
|
@@ -40,11 +40,11 @@ module Fog
|
|
40
40
|
request({
|
41
41
|
:expects => 200,
|
42
42
|
:headers => {},
|
43
|
-
:
|
43
|
+
:bucket_name => bucket_name,
|
44
|
+
:object_name => object_name,
|
44
45
|
:idempotent => true,
|
45
46
|
:method => 'GET',
|
46
47
|
:parser => Fog::Parsers::Storage::AWS::ListParts.new,
|
47
|
-
:path => CGI.escape(object_name),
|
48
48
|
:query => options.merge!({'uploadId' => upload_id})
|
49
49
|
})
|
50
50
|
end
|
@@ -66,7 +66,7 @@ module Fog
|
|
66
66
|
:expects => 200,
|
67
67
|
:headers => {'Content-MD5' => Base64.encode64(Digest::MD5.digest(body)).chomp!,
|
68
68
|
'Content-Type' => 'application/xml'},
|
69
|
-
:
|
69
|
+
:bucket_name => bucket_name,
|
70
70
|
:method => 'PUT',
|
71
71
|
:query => {'lifecycle' => nil}
|
72
72
|
})
|
@@ -33,10 +33,10 @@ module Fog
|
|
33
33
|
:body => data[:body],
|
34
34
|
:expects => 200,
|
35
35
|
:headers => headers,
|
36
|
-
:
|
36
|
+
:bucket_name => bucket_name,
|
37
|
+
:object_name => object_name,
|
37
38
|
:idempotent => true,
|
38
39
|
:method => 'PUT',
|
39
|
-
:path => CGI.escape(object_name)
|
40
40
|
})
|
41
41
|
end
|
42
42
|
|
@@ -7,9 +7,9 @@ module Fog
|
|
7
7
|
|
8
8
|
# Change access control list for an S3 object
|
9
9
|
#
|
10
|
-
# @param
|
11
|
-
# @param
|
12
|
-
# @param
|
10
|
+
# @param [String] bucket_name name of bucket to modify
|
11
|
+
# @param [String] object_name name of object to get access control list for
|
12
|
+
# @param [Hash] acl
|
13
13
|
# * Owner [Hash]
|
14
14
|
# * ID [String] id of owner
|
15
15
|
# * DisplayName [String] display name of owner
|
@@ -22,9 +22,9 @@ module Fog
|
|
22
22
|
# or
|
23
23
|
# * URI [String] URI of group to grant access for
|
24
24
|
# * Permission [String] Permission, in [FULL_CONTROL, WRITE, WRITE_ACP, READ, READ_ACP]
|
25
|
-
# @param
|
26
|
-
# @param
|
27
|
-
# @option options
|
25
|
+
# @param [String] acl Permissions, must be in ['private', 'public-read', 'public-read-write', 'authenticated-read']
|
26
|
+
# @param [Hash] options
|
27
|
+
# @option options [String] versionId specify a particular version to retrieve
|
28
28
|
#
|
29
29
|
# @see http://docs.amazonwebservices.com/AmazonS3/latest/API/RESTObjectPUTacl.html
|
30
30
|
|
@@ -54,9 +54,9 @@ module Fog
|
|
54
54
|
:body => data,
|
55
55
|
:expects => 200,
|
56
56
|
:headers => headers,
|
57
|
-
:
|
57
|
+
:bucket_name => bucket_name,
|
58
|
+
:object_name => object_name,
|
58
59
|
:method => 'PUT',
|
59
|
-
:path => CGI.escape(object_name),
|
60
60
|
:query => query
|
61
61
|
})
|
62
62
|
end
|
@@ -10,14 +10,12 @@ module Fog
|
|
10
10
|
unless object_name
|
11
11
|
raise ArgumentError.new('object_name is required')
|
12
12
|
end
|
13
|
-
|
14
|
-
:
|
15
|
-
:
|
16
|
-
:host => @host,
|
17
|
-
:port => @port,
|
13
|
+
signed_url(options.merge({
|
14
|
+
:bucket_name => bucket_name,
|
15
|
+
:object_name => object_name,
|
18
16
|
:method => 'PUT',
|
19
|
-
:
|
20
|
-
}, expires)
|
17
|
+
:headers => headers,
|
18
|
+
}), expires)
|
21
19
|
end
|
22
20
|
end
|
23
21
|
|
@@ -28,9 +28,9 @@ module Fog
|
|
28
28
|
:expects => 200,
|
29
29
|
:idempotent => true,
|
30
30
|
:headers => headers,
|
31
|
-
:
|
31
|
+
:bucket_name => bucket_name,
|
32
|
+
:object_name => object_name,
|
32
33
|
:method => 'PUT',
|
33
|
-
:path => CGI.escape(object_name),
|
34
34
|
:query => {'uploadId' => upload_id, 'partNumber' => part_number}
|
35
35
|
})
|
36
36
|
end
|
data/lib/fog/aws/storage.rb
CHANGED
@@ -6,6 +6,42 @@ module Fog
|
|
6
6
|
class AWS < Fog::Service
|
7
7
|
extend Fog::AWS::CredentialFetcher::ServiceMethods
|
8
8
|
|
9
|
+
COMPLIANT_BUCKET_NAMES = /^(?:[a-z]|\d(?!\d{0,2}(?:\.\d{1,3}){3}$))(?:[a-z0-9]|\.(?![\.\-])|\-(?![\.])){1,61}[a-z0-9]$/
|
10
|
+
|
11
|
+
DEFAULT_REGION = 'us-east-1'
|
12
|
+
|
13
|
+
DEFAULT_SCHEME = 'https'
|
14
|
+
DEFAULT_SCHEME_PORT = {
|
15
|
+
'http' => 80,
|
16
|
+
'https' => 443
|
17
|
+
}
|
18
|
+
|
19
|
+
VALID_QUERY_KEYS = %w[
|
20
|
+
acl
|
21
|
+
cors
|
22
|
+
delete
|
23
|
+
lifecycle
|
24
|
+
location
|
25
|
+
logging
|
26
|
+
notification
|
27
|
+
partNumber
|
28
|
+
policy
|
29
|
+
requestPayment
|
30
|
+
response-cache-control
|
31
|
+
response-content-disposition
|
32
|
+
response-content-encoding
|
33
|
+
response-content-language
|
34
|
+
response-content-type
|
35
|
+
response-expires
|
36
|
+
torrent
|
37
|
+
uploadId
|
38
|
+
uploads
|
39
|
+
versionId
|
40
|
+
versioning
|
41
|
+
versions
|
42
|
+
website
|
43
|
+
]
|
44
|
+
|
9
45
|
requires :aws_access_key_id, :aws_secret_access_key
|
10
46
|
recognizes :endpoint, :region, :host, :path, :port, :scheme, :persistent, :use_iam_profile, :aws_session_token, :aws_credentials_expire_at, :path_style
|
11
47
|
|
@@ -79,11 +115,11 @@ module Fog
|
|
79
115
|
end
|
80
116
|
|
81
117
|
def http_url(params, expires)
|
82
|
-
|
118
|
+
signed_url(params.merge(:scheme => 'http'), expires)
|
83
119
|
end
|
84
120
|
|
85
121
|
def https_url(params, expires)
|
86
|
-
|
122
|
+
signed_url(params.merge(:scheme => 'https'), expires)
|
87
123
|
end
|
88
124
|
|
89
125
|
def url(params, expires)
|
@@ -91,32 +127,124 @@ module Fog
|
|
91
127
|
https_url(params, expires)
|
92
128
|
end
|
93
129
|
|
130
|
+
def request_url(params)
|
131
|
+
params = request_params(params)
|
132
|
+
params_to_url(params)
|
133
|
+
end
|
134
|
+
|
135
|
+
def signed_url(params, expires)
|
136
|
+
expires = expires.to_i
|
137
|
+
signature = signature(params, expires)
|
138
|
+
params = request_params(params)
|
139
|
+
|
140
|
+
params[:query] = (params[:query] || {}).merge({
|
141
|
+
'AWSAccessKeyId' => @aws_access_key_id,
|
142
|
+
'Signature' => signature,
|
143
|
+
'Expires' => expires,
|
144
|
+
})
|
145
|
+
params[:query]['x-amz-security-token'] = @aws_session_token if @aws_session_token
|
146
|
+
|
147
|
+
params_to_url(params)
|
148
|
+
end
|
149
|
+
|
94
150
|
private
|
95
151
|
|
96
|
-
def
|
97
|
-
|
98
|
-
|
99
|
-
|
152
|
+
def region_to_host(region=nil)
|
153
|
+
case region.to_s
|
154
|
+
when DEFAULT_REGION, ''
|
155
|
+
's3.amazonaws.com'
|
156
|
+
else
|
157
|
+
"s3-#{region}.amazonaws.com"
|
158
|
+
end
|
159
|
+
end
|
160
|
+
|
161
|
+
def object_to_path(object_name=nil)
|
162
|
+
'/' + Fog::AWS.escape(object_name.to_s).gsub('%2F','/')
|
163
|
+
end
|
164
|
+
|
165
|
+
def bucket_to_path(bucket_name, path=nil)
|
166
|
+
"/#{Fog::AWS.escape(bucket_name.to_s)}#{path}"
|
167
|
+
end
|
168
|
+
|
169
|
+
# Transforms things like bucket_name, object_name, region
|
170
|
+
#
|
171
|
+
# Should yield the same result when called f*f
|
172
|
+
def request_params(params)
|
173
|
+
headers = params[:headers] || {}
|
174
|
+
|
175
|
+
if params[:scheme]
|
176
|
+
scheme = params[:scheme]
|
177
|
+
port = params[:port]
|
178
|
+
else
|
179
|
+
scheme = @scheme || DEFAULT_SCHEME
|
180
|
+
port = @port
|
100
181
|
end
|
101
|
-
if
|
102
|
-
|
182
|
+
if DEFAULT_SCHEME_PORT[scheme] == port
|
183
|
+
port = nil
|
103
184
|
end
|
104
|
-
|
105
|
-
params[:
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
185
|
+
|
186
|
+
if params[:region]
|
187
|
+
region = params[:region]
|
188
|
+
host = params[:host] || region_to_host(region)
|
189
|
+
else
|
190
|
+
region = @region || DEFAULT_REGION
|
191
|
+
host = params[:host] || @host || region_to_host(region)
|
192
|
+
end
|
193
|
+
|
194
|
+
path = params[:path] || object_to_path(params[:object_name])
|
195
|
+
path = '/' + path if path[0..0] != '/'
|
196
|
+
|
197
|
+
if params[:bucket_name]
|
198
|
+
bucket_name = params[:bucket_name]
|
199
|
+
|
200
|
+
path_style = params.fetch(:path_style, @path_style)
|
201
|
+
if !path_style && COMPLIANT_BUCKET_NAMES !~ bucket_name
|
202
|
+
Fog::Logger.warning("fog: the specified s3 bucket name(#{bucket_name}) is not a valid dns name, which will negatively impact performance. For details see: http://docs.amazonwebservices.com/AmazonS3/latest/dev/BucketRestrictions.html")
|
203
|
+
path_style = true
|
204
|
+
elsif bucket_name.include?('.')
|
205
|
+
Fog::Logger.warning("fog: the specified s3 bucket name(#{bucket_name}) might fail with https.")
|
206
|
+
end
|
207
|
+
|
208
|
+
if path_style
|
209
|
+
path = bucket_to_path bucket_name, path
|
210
|
+
else
|
211
|
+
host = [bucket_name, host].join('.')
|
112
212
|
end
|
113
213
|
end
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
214
|
+
|
215
|
+
ret = params.merge({
|
216
|
+
:scheme => scheme,
|
217
|
+
:host => host,
|
218
|
+
:port => port,
|
219
|
+
:path => path,
|
220
|
+
:headers => headers,
|
221
|
+
})
|
222
|
+
|
223
|
+
#
|
224
|
+
ret.delete(:path_style)
|
225
|
+
ret.delete(:bucket_name)
|
226
|
+
ret.delete(:object_name)
|
227
|
+
ret.delete(:region)
|
228
|
+
|
229
|
+
ret
|
230
|
+
end
|
231
|
+
|
232
|
+
def params_to_url(params)
|
233
|
+
query = params[:query] && params[:query].map do |key, value|
|
234
|
+
if value
|
235
|
+
[key, Fog::AWS.escape(value.to_s)].join('=')
|
236
|
+
else
|
237
|
+
key
|
238
|
+
end
|
239
|
+
end.join('&')
|
240
|
+
|
241
|
+
URI::Generic.build({
|
242
|
+
:scheme => params[:scheme],
|
243
|
+
:host => params[:host],
|
244
|
+
:port => params[:port],
|
245
|
+
:path => params[:path],
|
246
|
+
:query => query,
|
247
|
+
}).to_s
|
120
248
|
end
|
121
249
|
|
122
250
|
end
|
@@ -210,15 +338,9 @@ module Fog
|
|
210
338
|
require 'mime/types'
|
211
339
|
@use_iam_profile = options[:use_iam_profile]
|
212
340
|
setup_credentials(options)
|
213
|
-
options[:region]
|
214
|
-
@host
|
215
|
-
|
216
|
-
's3.amazonaws.com'
|
217
|
-
else
|
218
|
-
"s3-#{options[:region]}.amazonaws.com"
|
219
|
-
end
|
220
|
-
@scheme = options[:scheme] || 'https'
|
221
|
-
@region = options[:region]
|
341
|
+
@region = options[:region] || DEFAULT_REGION
|
342
|
+
@host = options[:host] || region_to_host(@region)
|
343
|
+
@scheme = options[:scheme] || DEFAULT_SCHEME
|
222
344
|
end
|
223
345
|
|
224
346
|
def data
|
@@ -229,7 +351,7 @@ module Fog
|
|
229
351
|
self.class.data[@region].delete(@aws_access_key_id)
|
230
352
|
end
|
231
353
|
|
232
|
-
def signature(params)
|
354
|
+
def signature(params, expires)
|
233
355
|
"foo"
|
234
356
|
end
|
235
357
|
|
@@ -270,6 +392,7 @@ module Fog
|
|
270
392
|
@use_iam_profile = options[:use_iam_profile]
|
271
393
|
setup_credentials(options)
|
272
394
|
@connection_options = options[:connection_options] || {}
|
395
|
+
@persistent = options.fetch(:persistent, false)
|
273
396
|
|
274
397
|
if @endpoint = options[:endpoint]
|
275
398
|
endpoint = URI.parse(@endpoint)
|
@@ -279,23 +402,17 @@ module Fog
|
|
279
402
|
else
|
280
403
|
endpoint.path
|
281
404
|
end
|
282
|
-
@port = endpoint.port
|
283
405
|
@scheme = endpoint.scheme
|
406
|
+
@port = endpoint.port
|
284
407
|
else
|
285
|
-
options[:region]
|
286
|
-
@
|
287
|
-
@host = options[:host] || case options[:region]
|
288
|
-
when 'us-east-1'
|
289
|
-
's3.amazonaws.com'
|
290
|
-
else
|
291
|
-
"s3-#{options[:region]}.amazonaws.com"
|
292
|
-
end
|
408
|
+
@region = options[:region] || DEFAULT_REGION
|
409
|
+
@host = options[:host] || region_to_host(@region)
|
293
410
|
@path = options[:path] || '/'
|
294
|
-
@
|
295
|
-
@port = options[:port] ||
|
296
|
-
@scheme = options[:scheme] || 'https'
|
411
|
+
@scheme = options[:scheme] || DEFAULT_SCHEME
|
412
|
+
@port = options[:port] || DEFAULT_SCHEME_PORT[@scheme]
|
297
413
|
@path_style = options[:path_style] || false
|
298
414
|
end
|
415
|
+
|
299
416
|
@connection = Fog::Connection.new("#{@scheme}://#{@host}:#{@port}#{@path}", @persistent, @connection_options)
|
300
417
|
end
|
301
418
|
|
@@ -303,17 +420,19 @@ module Fog
|
|
303
420
|
@connection.reset
|
304
421
|
end
|
305
422
|
|
306
|
-
def signature(params)
|
423
|
+
def signature(params, expires)
|
424
|
+
headers = params[:headers] || {}
|
425
|
+
|
307
426
|
string_to_sign =
|
308
427
|
<<-DATA
|
309
428
|
#{params[:method].to_s.upcase}
|
310
|
-
#{
|
311
|
-
#{
|
312
|
-
#{
|
429
|
+
#{headers['Content-MD5']}
|
430
|
+
#{headers['Content-Type']}
|
431
|
+
#{expires}
|
313
432
|
DATA
|
314
433
|
|
315
434
|
amz_headers, canonical_amz_headers = {}, ''
|
316
|
-
for key, value in
|
435
|
+
for key, value in headers
|
317
436
|
if key[0..5] == 'x-amz-'
|
318
437
|
amz_headers[key] = value
|
319
438
|
end
|
@@ -324,55 +443,33 @@ DATA
|
|
324
443
|
end
|
325
444
|
string_to_sign << canonical_amz_headers
|
326
445
|
|
327
|
-
|
328
|
-
|
329
|
-
if
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
446
|
+
|
447
|
+
query_string = ''
|
448
|
+
if params[:query]
|
449
|
+
query_args = []
|
450
|
+
for key in params[:query].keys.sort
|
451
|
+
if VALID_QUERY_KEYS.include?(key)
|
452
|
+
value = params[:query][key]
|
453
|
+
if value
|
454
|
+
query_args << "#{key}=#{Fog::AWS.escape(value.to_s)}"
|
455
|
+
else
|
456
|
+
query_args << key
|
457
|
+
end
|
458
|
+
end
|
459
|
+
end
|
460
|
+
if query_args.any?
|
461
|
+
query_string = '?' + query_args.join('&')
|
336
462
|
end
|
337
|
-
subdomain = nil
|
338
463
|
end
|
339
464
|
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
for key in (params[:query] || {}).keys.sort
|
347
|
-
if %w{
|
348
|
-
acl
|
349
|
-
cors
|
350
|
-
delete
|
351
|
-
lifecycle
|
352
|
-
location
|
353
|
-
logging
|
354
|
-
notification
|
355
|
-
partNumber
|
356
|
-
policy
|
357
|
-
requestPayment
|
358
|
-
response-cache-control
|
359
|
-
response-content-disposition
|
360
|
-
response-content-encoding
|
361
|
-
response-content-language
|
362
|
-
response-content-type
|
363
|
-
response-expires
|
364
|
-
torrent
|
365
|
-
uploadId
|
366
|
-
uploads
|
367
|
-
versionId
|
368
|
-
versioning
|
369
|
-
versions
|
370
|
-
website
|
371
|
-
}.include?(key)
|
372
|
-
canonical_resource << "#{key}#{"=#{params[:query][key]}" unless params[:query][key].nil?}&"
|
373
|
-
end
|
465
|
+
canonical_path = (params[:path] || object_to_path(params[:object_name])).to_s
|
466
|
+
canonical_path = '/' + canonical_path if canonical_path[0..0] != '/'
|
467
|
+
if params[:bucket_name]
|
468
|
+
canonical_resource = "/#{params[:bucket_name]}#{canonical_path}"
|
469
|
+
else
|
470
|
+
canonical_resource = canonical_path
|
374
471
|
end
|
375
|
-
canonical_resource
|
472
|
+
canonical_resource << query_string
|
376
473
|
string_to_sign << canonical_resource
|
377
474
|
|
378
475
|
signed_string = @hmac.sign(string_to_sign)
|
@@ -393,16 +490,23 @@ DATA
|
|
393
490
|
def request(params, &block)
|
394
491
|
refresh_credentials_if_expired
|
395
492
|
|
396
|
-
|
493
|
+
expires = Fog::Time.now.to_date_header
|
494
|
+
signature = signature(params, expires)
|
495
|
+
|
496
|
+
params = request_params(params)
|
497
|
+
params.delete(:port) unless params[:port]
|
498
|
+
|
499
|
+
params[:headers]['Date'] = expires
|
397
500
|
params[:headers]['x-amz-security-token'] = @aws_session_token if @aws_session_token
|
398
|
-
params[:headers]['Authorization'] = "AWS #{@aws_access_key_id}:#{signature
|
501
|
+
params[:headers]['Authorization'] = "AWS #{@aws_access_key_id}:#{signature}"
|
399
502
|
# FIXME: ToHashParser should make this not needed
|
400
503
|
original_params = params.dup
|
401
504
|
|
402
505
|
begin
|
403
506
|
response = @connection.request(params, &block)
|
404
507
|
rescue Excon::Errors::TemporaryRedirect => error
|
405
|
-
|
508
|
+
headers = (error.response.is_a?(Hash) ? error.response[:headers] : error.response.headers)
|
509
|
+
uri = URI.parse(headers['Location'])
|
406
510
|
Fog::Logger.warning("fog: followed redirect to #{uri.host}, connecting to the matching region will be more performant")
|
407
511
|
response = Fog::Connection.new("#{@scheme}://#{uri.host}:#{@port}", false, @connection_options).request(original_params, &block)
|
408
512
|
end
|