fog 0.5.1 → 0.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gemfile.lock +3 -11
- data/README.rdoc +21 -34
- data/bin/fog +1 -1
- data/examples/dns_tests.rb +2 -0
- data/examples/storage_tests.rb +2 -0
- data/fog.gemspec +3 -3
- data/lib/fog.rb +1 -1
- data/lib/fog/aws/requests/elb/create_load_balancer.rb +0 -9
- data/lib/fog/aws/requests/elb/delete_load_balancer.rb +0 -9
- data/lib/fog/aws/requests/elb/describe_instance_health.rb +0 -9
- data/lib/fog/aws/requests/elb/describe_load_balancers.rb +0 -8
- data/lib/fog/aws/requests/iam/add_user_to_group.rb +0 -8
- data/lib/fog/aws/requests/iam/create_access_key.rb +0 -8
- data/lib/fog/aws/requests/iam/create_group.rb +0 -8
- data/lib/fog/aws/requests/iam/create_user.rb +0 -8
- data/lib/fog/aws/requests/iam/delete_access_key.rb +0 -8
- data/lib/fog/aws/requests/iam/delete_group.rb +0 -8
- data/lib/fog/aws/requests/iam/delete_group_policy.rb +0 -8
- data/lib/fog/aws/requests/iam/delete_signing_certificate.rb +0 -8
- data/lib/fog/aws/requests/iam/delete_user.rb +0 -8
- data/lib/fog/aws/requests/iam/delete_user_policy.rb +0 -8
- data/lib/fog/aws/requests/iam/get_user.rb +0 -8
- data/lib/fog/aws/requests/iam/list_access_keys.rb +0 -8
- data/lib/fog/aws/requests/iam/list_group_policies.rb +0 -8
- data/lib/fog/aws/requests/iam/list_groups.rb +0 -8
- data/lib/fog/aws/requests/iam/list_groups_for_user.rb +0 -8
- data/lib/fog/aws/requests/iam/list_signing_certificates.rb +0 -8
- data/lib/fog/aws/requests/iam/list_user_policies.rb +0 -8
- data/lib/fog/aws/requests/iam/list_users.rb +0 -8
- data/lib/fog/aws/requests/iam/put_group_policy.rb +0 -8
- data/lib/fog/aws/requests/iam/put_user_policy.rb +0 -8
- data/lib/fog/aws/requests/iam/remove_user_from_group.rb +0 -8
- data/lib/fog/aws/requests/iam/update_access_key.rb +0 -8
- data/lib/fog/aws/requests/iam/upload_signing_certificate.rb +0 -8
- data/lib/fog/aws/requests/ses/delete_verified_email_address.rb +0 -9
- data/lib/fog/aws/requests/ses/get_send_quota.rb +0 -9
- data/lib/fog/aws/requests/ses/get_send_statistics.rb +0 -9
- data/lib/fog/aws/requests/ses/list_verified_email_addresses.rb +0 -9
- data/lib/fog/aws/requests/ses/send_email.rb +0 -9
- data/lib/fog/aws/requests/ses/send_raw_email.rb +0 -9
- data/lib/fog/aws/requests/ses/verify_email_address.rb +0 -9
- data/lib/fog/aws/requests/simpledb/select.rb +0 -8
- data/lib/fog/bin.rb +1 -15
- data/lib/fog/bin/aws.rb +4 -4
- data/lib/fog/bin/bluebox.rb +1 -1
- data/lib/fog/bin/brightbox.rb +5 -5
- data/lib/fog/bin/go_grid.rb +2 -2
- data/lib/fog/bin/google.rb +2 -2
- data/lib/fog/bin/linode.rb +2 -2
- data/lib/fog/bin/local.rb +2 -2
- data/lib/fog/bin/new_servers.rb +2 -2
- data/lib/fog/bin/rackspace.rb +2 -2
- data/lib/fog/bin/slicehost.rb +2 -2
- data/lib/fog/bin/terremark_ecloud.rb +1 -1
- data/lib/fog/bin/vcloud.rb +1 -1
- data/lib/fog/bin/zerigo.rb +2 -2
- data/lib/fog/cdn/requests/aws/delete_distribution.rb +0 -8
- data/lib/fog/cdn/requests/aws/get_distribution.rb +0 -8
- data/lib/fog/cdn/requests/aws/get_distribution_list.rb +0 -8
- data/lib/fog/cdn/requests/aws/post_distribution.rb +0 -8
- data/lib/fog/cdn/requests/aws/post_invalidation.rb +0 -8
- data/lib/fog/cdn/requests/aws/put_distribution_config.rb +0 -8
- data/lib/fog/cdn/requests/rackspace/get_containers.rb +0 -8
- data/lib/fog/cdn/requests/rackspace/head_container.rb +0 -8
- data/lib/fog/cdn/requests/rackspace/put_container.rb +0 -8
- data/lib/fog/compute/models/aws/server.rb +1 -1
- data/lib/fog/compute/models/bluebox/server.rb +1 -1
- data/lib/fog/compute/models/rackspace/server.rb +1 -1
- data/lib/fog/compute/models/slicehost/server.rb +1 -1
- data/lib/fog/compute/requests/aws/delete_tags.rb +1 -9
- data/lib/fog/compute/requests/aws/describe_reserved_instances.rb +0 -8
- data/lib/fog/compute/requests/aws/describe_reserved_instances_offerings.rb +0 -8
- data/lib/fog/compute/requests/aws/describe_tags.rb +0 -8
- data/lib/fog/compute/requests/aws/modify_image_attributes.rb +0 -8
- data/lib/fog/compute/requests/aws/modify_snapshot_attribute.rb +0 -8
- data/lib/fog/compute/requests/aws/start_instances.rb +0 -8
- data/lib/fog/compute/requests/aws/stop_instances.rb +0 -8
- data/lib/fog/compute/requests/bluebox/create_block.rb +0 -8
- data/lib/fog/compute/requests/bluebox/destroy_block.rb +0 -8
- data/lib/fog/compute/requests/bluebox/get_block.rb +0 -8
- data/lib/fog/compute/requests/bluebox/get_blocks.rb +0 -8
- data/lib/fog/compute/requests/bluebox/get_product.rb +0 -8
- data/lib/fog/compute/requests/bluebox/get_products.rb +0 -8
- data/lib/fog/compute/requests/bluebox/get_template.rb +0 -8
- data/lib/fog/compute/requests/bluebox/get_templates.rb +0 -8
- data/lib/fog/compute/requests/bluebox/reboot_block.rb +0 -8
- data/lib/fog/compute/requests/brightbox/add_nodes_load_balancer.rb +0 -8
- data/lib/fog/compute/requests/brightbox/create_api_client.rb +0 -8
- data/lib/fog/compute/requests/brightbox/create_cloud_ip.rb +0 -8
- data/lib/fog/compute/requests/brightbox/create_image.rb +0 -8
- data/lib/fog/compute/requests/brightbox/create_load_balancer.rb +0 -8
- data/lib/fog/compute/requests/brightbox/create_server.rb +0 -8
- data/lib/fog/compute/requests/brightbox/destroy_api_client.rb +0 -8
- data/lib/fog/compute/requests/brightbox/destroy_cloud_ip.rb +0 -8
- data/lib/fog/compute/requests/brightbox/destroy_image.rb +0 -8
- data/lib/fog/compute/requests/brightbox/destroy_load_balancer.rb +0 -8
- data/lib/fog/compute/requests/brightbox/destroy_server.rb +0 -8
- data/lib/fog/compute/requests/brightbox/get_account.rb +0 -8
- data/lib/fog/compute/requests/brightbox/get_api_client.rb +0 -8
- data/lib/fog/compute/requests/brightbox/get_cloud_ip.rb +0 -8
- data/lib/fog/compute/requests/brightbox/get_image.rb +0 -8
- data/lib/fog/compute/requests/brightbox/get_interface.rb +0 -8
- data/lib/fog/compute/requests/brightbox/get_load_balancer.rb +0 -8
- data/lib/fog/compute/requests/brightbox/get_server.rb +0 -8
- data/lib/fog/compute/requests/brightbox/get_server_type.rb +0 -8
- data/lib/fog/compute/requests/brightbox/get_user.rb +0 -8
- data/lib/fog/compute/requests/brightbox/get_zone.rb +0 -8
- data/lib/fog/compute/requests/brightbox/list_api_clients.rb +0 -8
- data/lib/fog/compute/requests/brightbox/list_cloud_ips.rb +0 -8
- data/lib/fog/compute/requests/brightbox/list_images.rb +0 -8
- data/lib/fog/compute/requests/brightbox/list_load_balancers.rb +0 -8
- data/lib/fog/compute/requests/brightbox/list_server_types.rb +0 -8
- data/lib/fog/compute/requests/brightbox/list_servers.rb +0 -8
- data/lib/fog/compute/requests/brightbox/list_users.rb +0 -8
- data/lib/fog/compute/requests/brightbox/list_zones.rb +0 -8
- data/lib/fog/compute/requests/brightbox/map_cloud_ip.rb +0 -8
- data/lib/fog/compute/requests/brightbox/remove_nodes_load_balancer.rb +0 -8
- data/lib/fog/compute/requests/brightbox/reset_ftp_password_account.rb +0 -8
- data/lib/fog/compute/requests/brightbox/resize_server.rb +0 -8
- data/lib/fog/compute/requests/brightbox/shutdown_server.rb +0 -8
- data/lib/fog/compute/requests/brightbox/snapshot_server.rb +0 -8
- data/lib/fog/compute/requests/brightbox/start_server.rb +0 -8
- data/lib/fog/compute/requests/brightbox/stop_server.rb +0 -8
- data/lib/fog/compute/requests/brightbox/unmap_cloud_ip.rb +0 -8
- data/lib/fog/compute/requests/brightbox/update_account.rb +0 -8
- data/lib/fog/compute/requests/brightbox/update_api_client.rb +0 -8
- data/lib/fog/compute/requests/brightbox/update_image.rb +0 -8
- data/lib/fog/compute/requests/brightbox/update_load_balancer.rb +0 -8
- data/lib/fog/compute/requests/brightbox/update_server.rb +0 -8
- data/lib/fog/compute/requests/brightbox/update_user.rb +0 -8
- data/lib/fog/compute/requests/go_grid/common_lookup_list.rb +0 -8
- data/lib/fog/compute/requests/go_grid/grid_ip_list.rb +0 -8
- data/lib/fog/compute/requests/go_grid/grid_loadbalancer_list.rb +0 -8
- data/lib/fog/compute/requests/go_grid/grid_server_add.rb +0 -8
- data/lib/fog/compute/requests/go_grid/grid_server_delete.rb +0 -8
- data/lib/fog/compute/requests/go_grid/grid_server_get.rb +0 -8
- data/lib/fog/compute/requests/go_grid/grid_server_list.rb +0 -8
- data/lib/fog/compute/requests/go_grid/grid_server_power.rb +0 -8
- data/lib/fog/compute/requests/go_grid/support_password_get.rb +2 -10
- data/lib/fog/compute/requests/go_grid/support_password_list.rb +0 -8
- data/lib/fog/compute/requests/linode/avail_datacenters.rb +0 -8
- data/lib/fog/compute/requests/linode/avail_distributions.rb +0 -8
- data/lib/fog/compute/requests/linode/avail_kernels.rb +0 -8
- data/lib/fog/compute/requests/linode/avail_linodeplans.rb +0 -8
- data/lib/fog/compute/requests/linode/avail_stackscripts.rb +0 -8
- data/lib/fog/compute/requests/linode/linode_create.rb +0 -8
- data/lib/fog/compute/requests/linode/linode_delete.rb +0 -8
- data/lib/fog/compute/requests/linode/linode_list.rb +0 -8
- data/lib/fog/compute/requests/linode/linode_reboot.rb +0 -8
- data/lib/fog/compute/requests/new_servers/add_server.rb +0 -8
- data/lib/fog/compute/requests/new_servers/cancel_server.rb +0 -8
- data/lib/fog/compute/requests/new_servers/get_server.rb +0 -8
- data/lib/fog/compute/requests/new_servers/list_images.rb +0 -8
- data/lib/fog/compute/requests/new_servers/list_plans.rb +0 -8
- data/lib/fog/compute/requests/new_servers/list_servers.rb +0 -8
- data/lib/fog/compute/requests/new_servers/reboot_server.rb +0 -8
- data/lib/fog/compute/requests/rackspace/get_image_details.rb +0 -8
- data/lib/fog/compute/requests/rackspace/server_action.rb +0 -8
- data/lib/fog/compute/requests/slicehost/create_slice.rb +0 -8
- data/lib/fog/compute/requests/slicehost/delete_slice.rb +0 -8
- data/lib/fog/compute/requests/slicehost/get_backups.rb +0 -8
- data/lib/fog/compute/requests/slicehost/get_flavor.rb +0 -8
- data/lib/fog/compute/requests/slicehost/get_flavors.rb +0 -8
- data/lib/fog/compute/requests/slicehost/get_image.rb +0 -8
- data/lib/fog/compute/requests/slicehost/get_images.rb +0 -8
- data/lib/fog/compute/requests/slicehost/get_slice.rb +0 -8
- data/lib/fog/compute/requests/slicehost/get_slices.rb +0 -8
- data/lib/fog/compute/requests/slicehost/reboot_slice.rb +0 -8
- data/lib/fog/compute/requests/terremark_ecloud/get_catalog.rb +0 -8
- data/lib/fog/compute/requests/terremark_ecloud/get_catalog_item.rb +0 -8
- data/lib/fog/compute/requests/terremark_ecloud/get_ip_addresses.rb +0 -8
- data/lib/fog/compute/requests/terremark_ecloud/get_network.rb +0 -8
- data/lib/fog/compute/requests/terremark_ecloud/get_organization.rb +0 -8
- data/lib/fog/compute/requests/terremark_ecloud/get_vdc.rb +0 -8
- data/lib/fog/compute/requests/terremark_ecloud/get_versions.rb +0 -8
- data/lib/fog/core/provider.rb +4 -0
- data/lib/fog/core/service.rb +17 -0
- data/lib/fog/dns/requests/aws/change_resource_record_sets.rb +0 -8
- data/lib/fog/dns/requests/aws/create_hosted_zone.rb +0 -9
- data/lib/fog/dns/requests/aws/delete_hosted_zone.rb +0 -9
- data/lib/fog/dns/requests/aws/get_change.rb +0 -9
- data/lib/fog/dns/requests/aws/get_hosted_zone.rb +0 -9
- data/lib/fog/dns/requests/aws/list_hosted_zones.rb +0 -9
- data/lib/fog/dns/requests/aws/list_resource_record_sets.rb +0 -8
- data/lib/fog/dns/requests/linode/domain_create.rb +0 -8
- data/lib/fog/dns/requests/linode/domain_delete.rb +0 -8
- data/lib/fog/dns/requests/linode/domain_list.rb +0 -8
- data/lib/fog/dns/requests/linode/domain_resource_create.rb +0 -8
- data/lib/fog/dns/requests/linode/domain_resource_delete.rb +0 -8
- data/lib/fog/dns/requests/linode/domain_resource_list.rb +0 -8
- data/lib/fog/dns/requests/linode/domain_resource_update.rb +0 -8
- data/lib/fog/dns/requests/linode/domain_update.rb +0 -8
- data/lib/fog/dns/requests/slicehost/create_record.rb +0 -8
- data/lib/fog/dns/requests/slicehost/create_zone.rb +0 -8
- data/lib/fog/dns/requests/slicehost/delete_record.rb +0 -8
- data/lib/fog/dns/requests/slicehost/delete_zone.rb +0 -8
- data/lib/fog/dns/requests/slicehost/get_record.rb +0 -8
- data/lib/fog/dns/requests/slicehost/get_records.rb +0 -8
- data/lib/fog/dns/requests/slicehost/get_zone.rb +0 -8
- data/lib/fog/dns/requests/slicehost/get_zones.rb +0 -8
- data/lib/fog/dns/requests/zerigo/count_hosts.rb +0 -8
- data/lib/fog/dns/requests/zerigo/count_zones.rb +0 -8
- data/lib/fog/dns/requests/zerigo/create_host.rb +0 -8
- data/lib/fog/dns/requests/zerigo/create_zone.rb +0 -8
- data/lib/fog/dns/requests/zerigo/delete_host.rb +0 -8
- data/lib/fog/dns/requests/zerigo/delete_zone.rb +0 -8
- data/lib/fog/dns/requests/zerigo/find_hosts.rb +0 -8
- data/lib/fog/dns/requests/zerigo/get_host.rb +0 -8
- data/lib/fog/dns/requests/zerigo/get_zone.rb +0 -8
- data/lib/fog/dns/requests/zerigo/get_zone_stats.rb +0 -8
- data/lib/fog/dns/requests/zerigo/list_hosts.rb +0 -8
- data/lib/fog/dns/requests/zerigo/list_zones.rb +0 -8
- data/lib/fog/dns/requests/zerigo/update_host.rb +0 -8
- data/lib/fog/dns/requests/zerigo/update_zone.rb +0 -8
- data/lib/fog/providers.rb +8 -0
- data/lib/fog/storage/aws.rb +21 -21
- data/lib/fog/storage/google.rb +12 -11
- data/lib/fog/storage/requests/aws/abort_multipart_upload.rb +0 -8
- data/lib/fog/storage/requests/aws/complete_multipart_upload.rb +0 -8
- data/lib/fog/storage/requests/aws/copy_object.rb +2 -1
- data/lib/fog/storage/requests/aws/get_bucket.rb +3 -3
- data/lib/fog/storage/requests/aws/get_bucket_logging.rb +0 -8
- data/lib/fog/storage/requests/aws/get_bucket_object_versions.rb +0 -8
- data/lib/fog/storage/requests/aws/get_bucket_versioning.rb +0 -8
- data/lib/fog/storage/requests/aws/get_object.rb +8 -8
- data/lib/fog/storage/requests/aws/get_object_torrent.rb +0 -8
- data/lib/fog/storage/requests/aws/initiate_multipart_upload.rb +0 -8
- data/lib/fog/storage/requests/aws/list_multipart_uploads.rb +0 -8
- data/lib/fog/storage/requests/aws/list_parts.rb +0 -8
- data/lib/fog/storage/requests/aws/post_object_hidden_fields.rb +0 -8
- data/lib/fog/storage/requests/aws/put_bucket_acl.rb +0 -8
- data/lib/fog/storage/requests/aws/put_bucket_logging.rb +0 -8
- data/lib/fog/storage/requests/aws/put_bucket_versioning.rb +0 -8
- data/lib/fog/storage/requests/aws/put_object.rb +18 -9
- data/lib/fog/storage/requests/aws/put_object_acl.rb +0 -8
- data/lib/fog/storage/requests/aws/upload_part.rb +0 -8
- data/lib/fog/storage/requests/google/copy_object.rb +1 -1
- data/lib/fog/storage/requests/google/get_bucket.rb +3 -3
- data/lib/fog/storage/requests/google/get_object.rb +8 -8
- data/lib/fog/storage/requests/google/get_object_torrent.rb +0 -8
- data/lib/fog/storage/requests/google/put_bucket_acl.rb +0 -8
- data/lib/fog/storage/requests/google/put_object.rb +17 -9
- data/lib/fog/storage/requests/rackspace/delete_container.rb +0 -8
- data/lib/fog/storage/requests/rackspace/delete_object.rb +0 -8
- data/lib/fog/storage/requests/rackspace/get_container.rb +0 -8
- data/lib/fog/storage/requests/rackspace/get_containers.rb +0 -8
- data/lib/fog/storage/requests/rackspace/get_object.rb +0 -8
- data/lib/fog/storage/requests/rackspace/head_container.rb +0 -8
- data/lib/fog/storage/requests/rackspace/head_containers.rb +0 -8
- data/lib/fog/storage/requests/rackspace/head_object.rb +0 -8
- data/lib/fog/storage/requests/rackspace/put_container.rb +0 -8
- data/lib/fog/storage/requests/rackspace/put_object.rb +0 -8
- data/lib/fog/terremark/requests/shared/add_internet_service.rb +0 -8
- data/lib/fog/terremark/requests/shared/add_node_service.rb +0 -8
- data/lib/fog/terremark/requests/shared/create_internet_service.rb +0 -8
- data/lib/fog/terremark/requests/shared/delete_internet_service.rb +0 -8
- data/lib/fog/terremark/requests/shared/delete_node_service.rb +0 -8
- data/lib/fog/terremark/requests/shared/delete_public_ip.rb +0 -8
- data/lib/fog/terremark/requests/shared/delete_vapp.rb +0 -8
- data/lib/fog/terremark/requests/shared/deploy_vapp.rb +0 -8
- data/lib/fog/terremark/requests/shared/get_catalog.rb +0 -8
- data/lib/fog/terremark/requests/shared/get_catalog_item.rb +0 -8
- data/lib/fog/terremark/requests/shared/get_internet_services.rb +0 -8
- data/lib/fog/terremark/requests/shared/get_network_ips.rb +0 -8
- data/lib/fog/terremark/requests/shared/get_node_services.rb +0 -8
- data/lib/fog/terremark/requests/shared/get_public_ip.rb +0 -8
- data/lib/fog/terremark/requests/shared/get_task.rb +0 -8
- data/lib/fog/terremark/requests/shared/get_tasks_list.rb +0 -7
- data/lib/fog/terremark/requests/shared/get_vapp.rb +0 -8
- data/lib/fog/terremark/requests/shared/get_vapp_template.rb +0 -8
- data/lib/fog/terremark/requests/shared/instantiate_vapp_template.rb +0 -8
- data/lib/fog/terremark/requests/shared/power_off.rb +0 -8
- data/lib/fog/terremark/requests/shared/power_on.rb +0 -8
- data/lib/fog/terremark/requests/shared/power_reset.rb +0 -8
- data/lib/fog/terremark/requests/shared/power_shutdown.rb +0 -8
- data/lib/fog/vcloud/terremark/ecloud/requests/clone_vapp.rb +0 -8
- data/lib/fog/vcloud/terremark/ecloud/requests/configure_network.rb +0 -7
- data/lib/fog/vcloud/terremark/ecloud/requests/get_firewall_acl.rb +0 -5
- data/lib/fog/vcloud/terremark/ecloud/requests/get_firewall_acls.rb +0 -5
- data/lib/fog/vcloud/terremark/ecloud/requests/get_task.rb +0 -5
- data/lib/fog/vcloud/terremark/ecloud/requests/get_task_list.rb +0 -5
- data/lib/fog/vcloud/terremark/ecloud/requests/get_vapp_template.rb +0 -5
- data/lib/fog/vcloud/terremark/ecloud/requests/power_reset.rb +0 -5
- data/lib/fog/vcloud/terremark/ecloud/requests/power_shutdown.rb +0 -5
- data/tests/helper.rb +2 -2
- data/tests/helpers/mock_helper.rb +1 -0
- metadata +42 -42
data/lib/fog/storage/google.rb
CHANGED
|
@@ -209,17 +209,6 @@ module Fog
|
|
|
209
209
|
@connection.reset
|
|
210
210
|
end
|
|
211
211
|
|
|
212
|
-
private
|
|
213
|
-
|
|
214
|
-
def request(params, &block)
|
|
215
|
-
params[:headers]['Date'] = Fog::Time.now.to_date_header
|
|
216
|
-
params[:headers]['Authorization'] = "GOOG1 #{@google_storage_access_key_id}:#{signature(params)}"
|
|
217
|
-
|
|
218
|
-
response = @connection.request(params, &block)
|
|
219
|
-
|
|
220
|
-
response
|
|
221
|
-
end
|
|
222
|
-
|
|
223
212
|
def signature(params)
|
|
224
213
|
string_to_sign =
|
|
225
214
|
<<-DATA
|
|
@@ -271,6 +260,18 @@ DATA
|
|
|
271
260
|
signed_string = @hmac.sign(string_to_sign)
|
|
272
261
|
signature = Base64.encode64(signed_string).chomp!
|
|
273
262
|
end
|
|
263
|
+
|
|
264
|
+
|
|
265
|
+
private
|
|
266
|
+
|
|
267
|
+
def request(params, &block)
|
|
268
|
+
params[:headers]['Date'] = Fog::Time.now.to_date_header
|
|
269
|
+
params[:headers]['Authorization'] = "GOOG1 #{@google_storage_access_key_id}:#{signature(params)}"
|
|
270
|
+
|
|
271
|
+
response = @connection.request(params, &block)
|
|
272
|
+
|
|
273
|
+
response
|
|
274
|
+
end
|
|
274
275
|
end
|
|
275
276
|
end
|
|
276
277
|
end
|
|
@@ -18,6 +18,7 @@ module Fog
|
|
|
18
18
|
# * 'x-amz-copy_source-if-modified_since'<~Time> - Copies object it it has been modified since this time
|
|
19
19
|
# * 'x-amz-copy_source-if-none-match'<~String> - Copies object if its etag does not match this value
|
|
20
20
|
# * 'x-amz-copy_source-if-unmodified-since'<~Time> - Copies object it it has not been modified since this time
|
|
21
|
+
# * 'x-amz-storage-class'<~String> - Default is 'STANDARD', set to 'REDUCED_REDUNDANCY' for non-critical, reproducable data
|
|
21
22
|
#
|
|
22
23
|
# ==== Returns
|
|
23
24
|
# * response<~Excon::Response>:
|
|
@@ -59,7 +60,7 @@ module Fog
|
|
|
59
60
|
target_bucket[:objects][target_object_name] = target_object
|
|
60
61
|
response.body = {
|
|
61
62
|
'ETag' => target_object['ETag'],
|
|
62
|
-
'LastModified' => Time.parse(target_object['
|
|
63
|
+
'LastModified' => Time.parse(target_object['Last-Modified'])
|
|
63
64
|
}
|
|
64
65
|
else
|
|
65
66
|
response.status = 404
|
|
@@ -72,11 +72,11 @@ module Fog
|
|
|
72
72
|
(options['prefix'] && object['Key'][0...options['prefix'].length] != options['prefix']) ||
|
|
73
73
|
(options['marker'] && object['Key'] <= options['marker'])
|
|
74
74
|
end.map do |object|
|
|
75
|
-
data = object.reject {|key, value| !['ETag', 'Key', '
|
|
75
|
+
data = object.reject {|key, value| !['ETag', 'Key', 'StorageClass'].include?(key)}
|
|
76
76
|
data.merge!({
|
|
77
|
-
'LastModified' => Time.parse(
|
|
77
|
+
'LastModified' => Time.parse(object['Last-Modified']),
|
|
78
78
|
'Owner' => bucket['Owner'],
|
|
79
|
-
'Size' =>
|
|
79
|
+
'Size' => object['Content-Length'].to_i
|
|
80
80
|
})
|
|
81
81
|
data
|
|
82
82
|
end
|
|
@@ -68,20 +68,20 @@ module Fog
|
|
|
68
68
|
if (bucket = @data[:buckets][bucket_name]) && (object = bucket[:objects][object_name])
|
|
69
69
|
if options['If-Match'] && options['If-Match'] != object['ETag']
|
|
70
70
|
response.status = 412
|
|
71
|
-
elsif options['If-Modified-Since'] && options['If-Modified-Since'] > Time.parse(object['
|
|
71
|
+
elsif options['If-Modified-Since'] && options['If-Modified-Since'] > Time.parse(object['Last-Modified'])
|
|
72
72
|
response.status = 304
|
|
73
73
|
elsif options['If-None-Match'] && options['If-None-Match'] == object['ETag']
|
|
74
74
|
response.status = 304
|
|
75
|
-
elsif options['If-Unmodified-Since'] && options['If-Unmodified-Since'] < Time.parse(object['
|
|
75
|
+
elsif options['If-Unmodified-Since'] && options['If-Unmodified-Since'] < Time.parse(object['Last-Modified'])
|
|
76
76
|
response.status = 412
|
|
77
77
|
else
|
|
78
78
|
response.status = 200
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
'Content-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
79
|
+
for key, value in object
|
|
80
|
+
case key
|
|
81
|
+
when 'Cache-Control', 'Content-Disposition', 'Content-Encoding', 'Content-Length', 'Content-MD5', 'Content-Type', 'ETag', 'Expires', 'Last-Modified', /^x-amz-meta-/
|
|
82
|
+
response.headers[key] = value
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
85
|
unless block_given?
|
|
86
86
|
response.body = object[:body]
|
|
87
87
|
else
|
|
@@ -18,6 +18,7 @@ module Fog
|
|
|
18
18
|
# * 'Content-Type'<~String> - Standard MIME type describing contents (defaults to MIME::Types.of.first)
|
|
19
19
|
# * 'Expires'<~String> - Cache expiry
|
|
20
20
|
# * 'x-amz-acl'<~String> - Permissions, must be in ['private', 'public-read', 'public-read-write', 'authenticated-read']
|
|
21
|
+
# * 'x-amz-storage-class'<~String> - Default is 'STANDARD', set to 'REDUCED_REDUNDANCY' for non-critical, reproducable data
|
|
21
22
|
# * "x-amz-meta-#{name}" - Headers to be returned with object, note total size of request without body must be less than 8 KB.
|
|
22
23
|
#
|
|
23
24
|
# ==== Returns
|
|
@@ -63,20 +64,28 @@ module Fog
|
|
|
63
64
|
if (bucket = @data[:buckets][bucket_name])
|
|
64
65
|
response.status = 200
|
|
65
66
|
object = {
|
|
66
|
-
:body
|
|
67
|
-
'Content-Type'
|
|
68
|
-
'ETag'
|
|
69
|
-
'Key'
|
|
70
|
-
'
|
|
71
|
-
'
|
|
72
|
-
'StorageClass'
|
|
67
|
+
:body => data[:body],
|
|
68
|
+
'Content-Type' => options['Content-Type'] || data[:headers]['Content-Type'],
|
|
69
|
+
'ETag' => Fog::AWS::Mock.etag,
|
|
70
|
+
'Key' => object_name,
|
|
71
|
+
'Last-Modified' => Fog::Time.now.to_date_header,
|
|
72
|
+
'Content-Length' => options['Content-Length'] || data[:headers]['Content-Length'],
|
|
73
|
+
'StorageClass' => options['x-amz-storage-class'] || 'STANDARD'
|
|
73
74
|
}
|
|
75
|
+
|
|
76
|
+
for key, value in options
|
|
77
|
+
case key
|
|
78
|
+
when 'Cache-Control', 'Content-Disposition', 'Content-Encoding', 'Content-MD5', 'Expires', /^x-amz-meta-/
|
|
79
|
+
object[key] = value
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
|
+
|
|
74
83
|
bucket[:objects][object_name] = object
|
|
75
84
|
response.headers = {
|
|
76
|
-
'Content-Length' => object['
|
|
85
|
+
'Content-Length' => object['Content-Length'],
|
|
77
86
|
'Content-Type' => object['Content-Type'],
|
|
78
87
|
'ETag' => object['ETag'],
|
|
79
|
-
'Last-Modified' => object['
|
|
88
|
+
'Last-Modified' => object['Last-Modified']
|
|
80
89
|
}
|
|
81
90
|
else
|
|
82
91
|
response.status = 404
|
|
@@ -38,14 +38,6 @@ module Fog
|
|
|
38
38
|
end
|
|
39
39
|
|
|
40
40
|
end # Real
|
|
41
|
-
|
|
42
|
-
class Mock # :nodoc:all
|
|
43
|
-
|
|
44
|
-
def upload_part(bucket_name, object_name, upload_id, part_number, data, options = {})
|
|
45
|
-
Fog::Mock.not_implemented
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
end # Mock
|
|
49
41
|
end # Storage
|
|
50
42
|
end # AWS
|
|
51
43
|
end # Fog
|
|
@@ -56,7 +56,7 @@ module Fog
|
|
|
56
56
|
target_bucket[:objects][target_object_name] = target_object
|
|
57
57
|
response.body = {
|
|
58
58
|
'ETag' => target_object['ETag'],
|
|
59
|
-
'LastModified' => Time.parse(target_object['
|
|
59
|
+
'LastModified' => Time.parse(target_object['Last-Modified'])
|
|
60
60
|
}
|
|
61
61
|
else
|
|
62
62
|
response.status = 404
|
|
@@ -69,11 +69,11 @@ module Fog
|
|
|
69
69
|
(options['prefix'] && object['Key'][0...options['prefix'].length] != options['prefix']) ||
|
|
70
70
|
(options['marker'] && object['Key'] <= options['marker'])
|
|
71
71
|
end.map do |object|
|
|
72
|
-
data = object.reject {|key, value| !['ETag', 'Key', '
|
|
72
|
+
data = object.reject {|key, value| !['ETag', 'Key', 'StorageClass'].include?(key)}
|
|
73
73
|
data.merge!({
|
|
74
|
-
'LastModified' => Time.parse(
|
|
74
|
+
'LastModified' => Time.parse(object['Last-Modified']),
|
|
75
75
|
'Owner' => bucket['Owner'],
|
|
76
|
-
'Size' =>
|
|
76
|
+
'Size' => object['Content-Length'].to_i
|
|
77
77
|
})
|
|
78
78
|
data
|
|
79
79
|
end
|
|
@@ -65,20 +65,20 @@ module Fog
|
|
|
65
65
|
if (bucket = @data[:buckets][bucket_name]) && (object = bucket[:objects][object_name])
|
|
66
66
|
if options['If-Match'] && options['If-Match'] != object['ETag']
|
|
67
67
|
response.status = 412
|
|
68
|
-
elsif options['If-Modified-Since'] && options['If-Modified-Since'] > Time.parse(object['
|
|
68
|
+
elsif options['If-Modified-Since'] && options['If-Modified-Since'] > Time.parse(object['Last-Modified'])
|
|
69
69
|
response.status = 304
|
|
70
70
|
elsif options['If-None-Match'] && options['If-None-Match'] == object['ETag']
|
|
71
71
|
response.status = 304
|
|
72
|
-
elsif options['If-Unmodified-Since'] && options['If-Unmodified-Since'] < Time.parse(object['
|
|
72
|
+
elsif options['If-Unmodified-Since'] && options['If-Unmodified-Since'] < Time.parse(object['Last-Modified'])
|
|
73
73
|
response.status = 412
|
|
74
74
|
else
|
|
75
75
|
response.status = 200
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
'Content-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
76
|
+
for key, value in object
|
|
77
|
+
case key
|
|
78
|
+
when 'Cache-Control', 'Content-Disposition', 'Content-Encoding', 'Content-Length', 'Content-MD5', 'Content-Type', 'ETag', 'Expires', 'Last-Modified', /^x-goog-meta-/
|
|
79
|
+
response.headers[key] = value
|
|
80
|
+
end
|
|
81
|
+
end
|
|
82
82
|
unless block_given?
|
|
83
83
|
response.body = object[:body]
|
|
84
84
|
else
|