Class: Fog::Google::Storage::Real
- Inherits:
-
Object
- Object
- Fog::Google::Storage::Real
- Extended by:
- Deprecation
- Includes:
- Utils
- Defined in:
- lib/fog/storage/google.rb,
lib/fog/storage/requests/google/get_bucket.rb,
lib/fog/storage/requests/google/get_object.rb,
lib/fog/storage/requests/google/put_bucket.rb,
lib/fog/storage/requests/google/put_object.rb,
lib/fog/storage/requests/google/copy_object.rb,
lib/fog/storage/requests/google/get_service.rb,
lib/fog/storage/requests/google/head_object.rb,
lib/fog/storage/requests/google/delete_bucket.rb,
lib/fog/storage/requests/google/delete_object.rb,
lib/fog/storage/requests/google/get_bucket_acl.rb,
lib/fog/storage/requests/google/get_object_acl.rb,
lib/fog/storage/requests/google/get_object_url.rb,
lib/fog/storage/requests/google/put_bucket_acl.rb,
lib/fog/storage/requests/google/put_object_url.rb,
lib/fog/storage/requests/google/get_object_torrent.rb
Instance Method Summary collapse
-
#copy_object(source_bucket_name, source_object_name, target_bucket_name, target_object_name, options = {}) ⇒ Object
Copy an object from one Google Storage bucket to another.
-
#delete_bucket(bucket_name) ⇒ Object
Delete an Google Storage bucket.
-
#delete_object(bucket_name, object_name) ⇒ Object
Delete an object from Google Storage.
-
#get_bucket(bucket_name, options = {}) ⇒ Object
List information about objects in an Google Storage bucket.
-
#get_bucket_acl(bucket_name) ⇒ Object
Get access control list for an Google Storage bucket.
-
#get_object(bucket_name, object_name, options = {}, &block) ⇒ Object
Get an object from Google Storage.
-
#get_object_acl(bucket_name, object_name, options = {}) ⇒ Object
Get access control list for an Google Storage object.
-
#get_object_torrent(bucket_name, object_name) ⇒ Object
Get torrent for an Google Storage object.
-
#get_object_url(bucket_name, object_name, expires) ⇒ Object
Get an expiring object url from Google Storage.
-
#get_service ⇒ Object
List information about Google Storage buckets for authorized user.
-
#head_object(bucket_name, object_name, options = {}) ⇒ Object
Get headers for an object from Google Storage.
-
#initialize(options = {}) ⇒ Real
constructor
Initialize connection to Google Storage.
-
#put_bucket(bucket_name, options = {}) ⇒ Object
Create an Google Storage bucket.
-
#put_bucket_acl(bucket_name, acl) ⇒ Object
Change access control list for an Google Storage bucket.
-
#put_object(bucket_name, object_name, data, options = {}) ⇒ Object
Create an object in an Google Storage bucket.
-
#put_object_url(bucket_name, object_name, expires) ⇒ Object
Get an expiring object url from Google Storage for putting an object.
- #reload ⇒ Object
Methods included from Deprecation
Methods included from Utils
Constructor Details
#initialize(options = {}) ⇒ Real
Initialize connection to Google Storage
Notes
options parameter must include values for :google_storage_access_key_id and :google_storage_secret_access_key in order to create a connection
Examples
google_storage = Storage.new( :google_storage_access_key_id => your_google_storage_access_key_id, :google_storage_secret_access_key => your_google_storage_secret_access_key )
Parameters
- options<~Hash> - config arguments for connection. Defaults to {}.
Returns
- Storage object with connection to google.
190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 |
# File 'lib/fog/storage/google.rb', line 190 def initialize(={}) unless .delete(:provider) location = caller.first warning = "[yellow][WARN] Fog::Google::Storage.new is deprecated, use Fog::Storage.new(:provider => 'Google') instead[/]" warning << " [light_black](" << location << ")[/] " Formatador.display_line(warning) end require 'mime/types' @google_storage_access_key_id = [:google_storage_access_key_id] @google_storage_secret_access_key = [:google_storage_secret_access_key] @hmac = Fog::HMAC.new('sha1', @google_storage_secret_access_key) @host = [:host] || 'commondatastorage.googleapis.com' @port = [:port] || 443 @scheme = [:scheme] || 'https' @connection = Fog::Connection.new("#{@scheme}://#{@host}:#{@port}", [:persistent] || true) end |
Instance Method Details
#copy_object(source_bucket_name, source_object_name, target_bucket_name, target_object_name, options = {}) ⇒ Object
Copy an object from one Google Storage bucket to another
Parameters
- source_bucket_name<~String> - Name of source bucket
- source_object_name<~String> - Name of source object
- target_bucket_name<~String> - Name of bucket to create copy in
- target_object_name<~String> - Name for new copy of object
- options<~Hash>:
- 'x-goog-metadata-directive'<~String> - Specifies whether to copy metadata from source or replace with data in request. Must be in ['COPY', 'REPLACE']
- 'x-goog-copy_source-if-match'<~String> - Copies object if its etag matches this value
- 'x-goog-copy_source-if-modified_since'<~Time> - Copies object it it has been modified since this time
- 'x-goog-copy_source-if-none-match'<~String> - Copies object if its etag does not match this value
- 'x-goog-copy_source-if-unmodified-since'<~Time> - Copies object it it has not been modified since this time
Returns
- response<~Excon::Response>:
- body<~Hash>:
- 'ETag'<~String> - etag of new object
- 'LastModified'<~Time> - date object was last modified
- body<~Hash>:
28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/fog/storage/requests/google/copy_object.rb', line 28 def copy_object(source_bucket_name, source_object_name, target_bucket_name, target_object_name, = {}) headers = { 'x-goog-copy-source' => "/#{source_bucket_name}/#{source_object_name}" }.merge!() request({ :expects => 200, :headers => headers, :host => "#{target_bucket_name}.#{@host}", :method => 'PUT', :parser => Fog::Parsers::Google::Storage::CopyObject.new, :path => CGI.escape(target_object_name) }) end |
#delete_bucket(bucket_name) ⇒ Object
Delete an Google Storage bucket
Parameters
- bucket_name<~String> - name of bucket to delete
Returns
- response<~Excon::Response>:
- status<~Integer> - 204
14 15 16 17 18 19 20 21 |
# File 'lib/fog/storage/requests/google/delete_bucket.rb', line 14 def delete_bucket(bucket_name) request({ :expects => 204, :headers => {}, :host => "#{bucket_name}.#{@host}", :method => 'DELETE' }) end |
#delete_object(bucket_name, object_name) ⇒ Object
Delete an object from Google Storage
Parameters
- bucket_name<~String> - Name of bucket containing object to delete
- object_name<~String> - Name of object to delete
Returns
- response<~Excon::Response>:
- status<~Integer> - 204
15 16 17 18 19 20 21 22 23 24 |
# File 'lib/fog/storage/requests/google/delete_object.rb', line 15 def delete_object(bucket_name, object_name) request({ :expects => 204, :headers => {}, :host => "#{bucket_name}.#{@host}", :idempotent => true, :method => 'DELETE', :path => CGI.escape(object_name) }) end |
#get_bucket(bucket_name, options = {}) ⇒ Object
List information about objects in an Google Storage bucket
Parameters
- bucket_name<~String> - name of bucket to list object keys from
- options<~Hash> - config arguments for list. Defaults to {}.
- 'delimiter'<~String> - causes keys with the same string between the prefix value and the first occurence of delimiter to be rolled up
- 'marker'<~String> - limits object keys to only those that appear lexicographically after its value.
- 'max-keys'<~Integer> - limits number of object keys returned
- 'prefix'<~String> - limits object keys to those beginning with its value.
Returns
- response<~Excon::Response>:
- body<~Hash>:
- 'Delimeter'<~String> - Delimiter specified for query
- 'IsTruncated'<~Boolean> - Whether or not the listing is truncated
- 'Marker'<~String> - Marker specified for query
- 'MaxKeys'<~Integer> - Maximum number of keys specified for query
- 'Name'<~String> - Name of the bucket
- 'Prefix'<~String> - Prefix specified for query
- 'CommonPrefixes'<~Array> - Array of strings for common prefixes
- 'Contents'<~Array>:
- 'ETag'<~String>: Etag of object
- 'Key'<~String>: Name of object
- 'LastModified'<~String>: Timestamp of last modification of object
- 'Owner'<~Hash>:
- 'DisplayName'<~String> - Display name of object owner
- 'ID'<~String> - Id of object owner
- 'Size'<~Integer> - Size of object
- 'StorageClass'<~String> - Storage class of object
- body<~Hash>:
41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/fog/storage/requests/google/get_bucket.rb', line 41 def get_bucket(bucket_name, = {}) unless bucket_name raise ArgumentError.new('bucket_name is required') end request({ :expects => 200, :headers => {}, :host => "#{bucket_name}.#{@host}", :idempotent => true, :method => 'GET', :parser => Fog::Parsers::Google::Storage::GetBucket.new, :query => }) end |
#get_bucket_acl(bucket_name) ⇒ Object
Get access control list for an Google Storage bucket
Parameters
- bucket_name<~String> - name of bucket to get access control list for
Returns
- response<~Excon::Response>:
- body<~Hash>:
- 'AccessControlPolicy'<~Hash>
- 'Owner'<~Hash>:
- 'DisplayName'<~String> - Display name of object owner
- 'ID'<~String> - Id of object owner
- 'AccessControlList'<~Array>:
- 'Grant'<~Hash>:
- 'Grantee'<~Hash>:
- 'DisplayName'<~String> - Display name of grantee
- 'ID'<~String> - Id of grantee or
- 'URI'<~String> - URI of group to grant access for
- 'Permission'<~String> - Permission, in [FULL_CONTROL, WRITE, WRITE_ACP, READ, READ_ACP]
- 'Grantee'<~Hash>:
- 'Grant'<~Hash>:
- 'Owner'<~Hash>:
- 'AccessControlPolicy'<~Hash>
- body<~Hash>:
29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/fog/storage/requests/google/get_bucket_acl.rb', line 29 def get_bucket_acl(bucket_name) unless bucket_name raise ArgumentError.new('bucket_name is required') end request({ :expects => 200, :headers => {}, :host => "#{bucket_name}.#{@host}", :idempotent => true, :method => 'GET', :parser => Fog::Parsers::Google::Storage::AccessControlList.new, :query => {'acl' => nil} }) end |
#get_object(bucket_name, object_name, options = {}, &block) ⇒ Object
Get an object from Google Storage
Parameters
- bucket_name<~String> - Name of bucket to read from
- object_name<~String> - Name of object to read
- options<~Hash>:
- 'If-Match'<~String> - Returns object only if its etag matches this value, otherwise returns 412 (Precondition Failed).
- 'If-Modified-Since'<~Time> - Returns object only if it has been modified since this time, otherwise returns 304 (Not Modified).
- 'If-None-Match'<~String> - Returns object only if its etag differs from this value, otherwise returns 304 (Not Modified)
- 'If-Unmodified-Since'<~Time> - Returns object only if it has not been modified since this time, otherwise returns 412 (Precodition Failed).
- 'Range'<~String> - Range of object to download
- 'versionId'<~String> - specify a particular version to retrieve
Returns
- response<~Excon::Response>:
- body<~String> - Contents of object
- headers<~Hash>:
- 'Content-Length'<~String> - Size of object contents
- 'Content-Type'<~String> - MIME type of object
- 'ETag'<~String> - Etag of object
- 'Last-Modified'<~String> - Last modified timestamp for object
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/fog/storage/requests/google/get_object.rb', line 28 def get_object(bucket_name, object_name, = {}, &block) unless bucket_name raise ArgumentError.new('bucket_name is required') end unless object_name raise ArgumentError.new('object_name is required') end if version_id = .delete('versionId') query = {'versionId' => version_id} end headers = {} headers['If-Modified-Since'] = ['If-Modified-Since'].utc.strftime("%a, %d %b %Y %H:%M:%S +0000") if ['If-Modified-Since'] headers['If-Unmodified-Since'] = ['If-Unmodified-Since'].utc.strftime("%a, %d %b %Y %H:%M:%S +0000") if ['If-Modified-Since'] headers.merge!() request({ :expects => 200, :headers => headers, :host => "#{bucket_name}.#{@host}", :idempotent => true, :method => 'GET', :path => CGI.escape(object_name), :query => query }, &block) end |
#get_object_acl(bucket_name, object_name, options = {}) ⇒ Object
Get access control list for an Google Storage object
Parameters
- bucket_name<~String> - name of bucket containing object
- object_name<~String> - name of object to get access control list for
- options<~Hash>:
- 'versionId'<~String> - specify a particular version to retrieve
Returns
- response<~Excon::Response>:
- body<~Hash>:
- 'AccessControlPolicy'<~Hash>
- 'Owner'<~Hash>:
- 'DisplayName'<~String> - Display name of object owner
- 'ID'<~String> - Id of object owner
- 'AccessControlList'<~Array>:
- 'Grant'<~Hash>:
- 'Grantee'<~Hash>:
- 'DisplayName'<~String> - Display name of grantee
- 'ID'<~String> - Id of grantee or
- 'URI'<~String> - URI of group to grant access for
- 'Permission'<~String> - Permission, in [FULL_CONTROL, WRITE, WRITE_ACP, READ, READ_ACP]
- 'Grantee'<~Hash>:
- 'Grant'<~Hash>:
- 'Owner'<~Hash>:
- 'AccessControlPolicy'<~Hash>
- body<~Hash>:
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/fog/storage/requests/google/get_object_acl.rb', line 32 def get_object_acl(bucket_name, object_name, = {}) unless bucket_name raise ArgumentError.new('bucket_name is required') end unless object_name raise ArgumentError.new('object_name is required') end query = {'acl' => nil} if version_id = .delete('versionId') query['versionId'] = version_id end request({ :expects => 200, :headers => {}, :host => "#{bucket_name}.#{@host}", :idempotent => true, :method => 'GET', :parser => Fog::Parsers::Google::Storage::AccessControlList.new, :path => CGI.escape(object_name), :query => query }) end |
#get_object_torrent(bucket_name, object_name) ⇒ Object
Get torrent for an Google Storage object
Parameters
- bucket_name<~String> - name of bucket containing object
- object_name<~String> - name of object to get torrent for
Returns
- response<~Excon::Response>:
- body<~Hash>:
- 'AccessControlPolicy'<~Hash>
- 'Owner'<~Hash>:
- 'DisplayName'<~String> - Display name of object owner
- 'ID'<~String> - Id of object owner
- 'AccessControlList'<~Array>:
- 'Grant'<~Hash>:
- 'Grantee'<~Hash>:
- 'DisplayName'<~String> - Display name of grantee
- 'ID'<~String> - Id of grantee
- 'Permission'<~String> - Permission, in [FULL_CONTROL, WRITE, WRITE_ACP, READ, READ_ACP]
- 'Grantee'<~Hash>:
- 'Grant'<~Hash>:
- 'Owner'<~Hash>:
- 'AccessControlPolicy'<~Hash>
- body<~Hash>:
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/fog/storage/requests/google/get_object_torrent.rb', line 26 def get_object_torrent(bucket_name, object_name) unless bucket_name raise ArgumentError.new('bucket_name is required') end unless object_name raise ArgumentError.new('object_name is required') end request({ :expects => 200, :headers => {}, :host => "#{bucket_name}.#{@host}", :idempotent => true, :method => 'GET', :path => CGI.escape(object_name), :query => {'torrent' => nil} }) end |
#get_object_url(bucket_name, object_name, expires) ⇒ Object
Get an expiring object url from Google Storage
Parameters
- bucket_name<~String> - Name of bucket containing object
- object_name<~String> - Name of object to get expiring url for
- expires<~Time> - An expiry time for this url
Returns
- response<~Excon::Response>:
- body<~String> - url for object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/fog/storage/requests/google/get_object_url.rb', line 17 def get_object_url(bucket_name, object_name, expires) unless bucket_name raise ArgumentError.new('bucket_name is required') end unless object_name raise ArgumentError.new('object_name is required') end url({ :headers => {}, :host => @host, :method => 'GET', :path => "#{bucket_name}/#{object_name}" }, expires) end |
#get_service ⇒ Object
List information about Google Storage buckets for authorized user
Returns
- response<~Excon::Response>:
- body<~Hash>:
- 'Buckets'<~Hash>:
- 'Name'<~String> - Name of bucket
- 'CreationTime'<~Time> - Timestamp of bucket creation
- 'Owner'<~Hash>:
- 'DisplayName'<~String> - Display name of bucket owner
- 'ID'<~String> - Id of bucket owner
- 'Buckets'<~Hash>:
- body<~Hash>:
19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/fog/storage/requests/google/get_service.rb', line 19 def get_service request({ :expects => 200, :headers => {}, :host => @host, :idempotent => true, :method => 'GET', :parser => Fog::Parsers::Google::Storage::GetService.new, :url => @host }) end |
#head_object(bucket_name, object_name, options = {}) ⇒ Object
Get headers for an object from Google Storage
Parameters
- bucket_name<~String> - Name of bucket to read from
- object_name<~String> - Name of object to read
- options<~Hash>:
- 'If-Match'<~String> - Returns object only if its etag matches this value, otherwise returns 412 (Precondition Failed).
- 'If-Modified-Since'<~Time> - Returns object only if it has been modified since this time, otherwise returns 304 (Not Modified).
- 'If-None-Match'<~String> - Returns object only if its etag differs from this value, otherwise returns 304 (Not Modified)
- 'If-Unmodified-Since'<~Time> - Returns object only if it has not been modified since this time, otherwise returns 412 (Precodition Failed).
- 'Range'<~String> - Range of object to download
- 'versionId'<~String> - specify a particular version to retrieve
Returns
- response<~Excon::Response>:
- body<~String> - Contents of object
- headers<~Hash>:
- 'Content-Length'<~String> - Size of object contents
- 'Content-Type'<~String> - MIME type of object
- 'ETag'<~String> - Etag of object
- 'Last-Modified'<~String> - Last modified timestamp for object
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/fog/storage/requests/google/head_object.rb', line 27 def head_object(bucket_name, object_name, ={}) unless bucket_name raise ArgumentError.new('bucket_name is required') end unless object_name raise ArgumentError.new('object_name is required') end if version_id = .delete('versionId') query = {'versionId' => version_id} end headers = {} headers['If-Modified-Since'] = ['If-Modified-Since'].utc.strftime("%a, %d %b %Y %H:%M:%S +0000") if ['If-Modified-Since'] headers['If-Unmodified-Since'] = ['If-Unmodified-Since'].utc.strftime("%a, %d %b %Y %H:%M:%S +0000") if ['If-Modified-Since'] headers.merge!() request({ :expects => 200, :headers => headers, :host => "#{bucket_name}.#{@host}", :method => 'HEAD', :path => CGI.escape(object_name), :query => query }) end |
#put_bucket(bucket_name, options = {}) ⇒ Object
Create an Google Storage bucket
Parameters
- bucket_name<~String> - name of bucket to create
- options<~Hash> - config arguments for bucket. Defaults to {}.
- 'LocationConstraint'<~Symbol> - sets the location for the bucket
- 'x-amz-acl'<~String> - Permissions, must be in ['private', 'public-read', 'public-read-write', 'authenticated-read']
Returns
- response<~Excon::Response>:
- status<~Integer> - 200
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/fog/storage/requests/google/put_bucket.rb', line 17 def put_bucket(bucket_name, = {}) if location_constraint = .delete('LocationConstraint') data = <<-DATA <CreateBucketConfiguration> <LocationConstraint>#{location_constraint}</LocationConstraint> </CreateBucketConfiguration> DATA else data = nil end request({ :expects => 200, :body => data, :headers => , :idempotent => true, :host => "#{bucket_name}.#{@host}", :method => 'PUT' }) end |
#put_bucket_acl(bucket_name, acl) ⇒ Object
Change access control list for an Google Storage bucket
Parameters
- bucket_name<~String> - name of bucket to modify
- acl<~Hash>:
- Owner<~Hash>:
- ID<~String>: id of owner
- DisplayName<~String>: display name of owner
- AccessControlList<~Array>:
-
scope<~Hash>:
* 'type'<~String> - 'UserById' * 'ID'<~String> - Id of granteeor
- 'type'<~String> - 'UserByEmail'
- 'EmailAddress'<~String> - Email address of grantee or
- 'type'<~String> - type of user to grant permission to
-
Permission<~String> - Permission, in [FULL_CONTROL, WRITE, WRITE_ACP, READ, READ_ACP]
-
- Owner<~Hash>:
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/fog/storage/requests/google/put_bucket_acl.rb', line 24 def put_bucket_acl(bucket_name, acl) data = <<-DATA <AccessControlPolicy> <Owner> <ID>#{acl['Owner']['ID']}</ID> <DisplayName>#{acl['Owner']['DisplayName']}</DisplayName> </Owner> <AccessControlList> DATA acl['AccessControlList'].each do |grant| data << " <Grant>" type = case grant['Grantee'].keys.sort when ['DisplayName', 'ID'] 'CanonicalUser' when ['EmailAddress'] 'AmazonCustomerByEmail' when ['URI'] 'Group' end data << " <Grantee xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"#{type}\">" for key, value in grant['Grantee'] data << " <#{key}>#{value}</#{key}>" end data << " </Grantee>" data << " <Permission>#{grant['Permission']}</Permission>" data << " </Grant>" end data << <<-DATA </AccessControlList> </AccessControlPolicy> DATA request({ :body => data, :expects => 200, :headers => {}, :host => "#{bucket_name}.#{@host}", :method => 'PUT', :query => {'acl' => nil} }) end |
#put_object(bucket_name, object_name, data, options = {}) ⇒ Object
Create an object in an Google Storage bucket
Parameters
- bucket_name<~String> - Name of bucket to create object in
- object_name<~String> - Name of object to create
- data<~File> - File or String to create object from
- options<~Hash>:
- 'Cache-Control'<~String> - Caching behaviour
- 'Content-Disposition'<~String> - Presentational information for the object
- 'Content-Encoding'<~String> - Encoding of object data
- 'Content-Length'<~String> - Size of object in bytes (defaults to object.read.length)
- 'Content-MD5'<~String> - Base64 encoded 128-bit MD5 digest of message (defaults to Base64 encoded MD5 of object.read)
- 'Content-Type'<~String> - Standard MIME type describing contents (defaults to MIME::Types.of.first)
- 'x-goog-acl'<~String> - Permissions, must be in ['private', 'public-read', 'public-read-write', 'authenticated-read']
- "x-goog-meta-#name" - Headers to be returned with object, note total size of request without body must be less than 8 KB.
Returns
- response<~Excon::Response>:
- headers<~Hash>:
- 'ETag'<~String> - etag of new object
- headers<~Hash>:
26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/fog/storage/requests/google/put_object.rb', line 26 def put_object(bucket_name, object_name, data, = {}) data = parse_data(data) headers = data[:headers].merge!() request({ :body => data[:body], :expects => 200, :headers => headers, :host => "#{bucket_name}.#{@host}", :idempotent => true, :method => 'PUT', :path => CGI.escape(object_name) }) end |
#put_object_url(bucket_name, object_name, expires) ⇒ Object
Get an expiring object url from Google Storage for putting an object
Parameters
- bucket_name<~String> - Name of bucket containing object
- object_name<~String> - Name of object to get expiring url for
- expires<~Time> - An expiry time for this url
Returns
- response<~Excon::Response>:
- body<~String> - url for object
17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/fog/storage/requests/google/put_object_url.rb', line 17 def put_object_url(bucket_name, object_name, expires) unless bucket_name raise ArgumentError.new('bucket_name is required') end unless object_name raise ArgumentError.new('object_name is required') end url({ :headers => {}, :host => @host, :method => 'PUT', :path => "#{bucket_name}/#{object_name}" }, expires) end |
#reload ⇒ Object
208 209 210 |
# File 'lib/fog/storage/google.rb', line 208 def reload @connection.reset end |