Class: Google::Cloud::Storage::PostObject

Inherits:
Object
  • Object
show all
Defined in:
lib/google/cloud/storage/post_object.rb

Overview

PostObject represents the URL, fields, and values needed to upload objects via html forms.

Examples:

Using Bucket#post_object (V2):

require "google/cloud/storage"

storage = Google::Cloud::Storage.new

bucket = storage.bucket "my-todo-app"
post = bucket.post_object "avatars/heidi/400x400.png"

post.url #=> "https://storage.googleapis.com"
post.fields[:key] #=> "my-todo-app/avatars/heidi/400x400.png"
post.fields[:GoogleAccessId] #=> "0123456789@gserviceaccount.com"
post.fields[:signature] #=> "ABC...XYZ="
post.fields[:policy] #=> "ABC...XYZ="

Using Bucket#generate_signed_post_policy_v4 (V4):

require "google/cloud/storage"

storage = Google::Cloud::Storage.new

bucket = storage.bucket "my-todo-app"
conditions = [["starts-with","$acl","public"]]
post = bucket.generate_signed_post_policy_v4 "avatars/heidi/400x400.png", expires: 10, conditions: conditions

post.url #=> "https://storage.googleapis.com/my-todo-app/"
post.fields["key"] #=> "my-todo-app/avatars/heidi/400x400.png"
post.fields["policy"] #=> "ABC...XYZ"
post.fields["x-goog-algorithm"] #=> "GOOG4-RSA-SHA256"
post.fields["x-goog-credential"] #=> "cred@pid.iam.gserviceaccount.com/20200123/auto/storage/goog4_request"
post.fields["x-goog-date"] #=> "20200128T000000Z"
post.fields["x-goog-signature"] #=> "4893a0e...cd82"

See Also:

Instance Attribute Summary collapse

Instance Attribute Details

#fieldsHash (readonly)

The input fields that must be included in the form. Each key/value pair should be set as an input tag's name and value.

Returns:

  • (Hash)

    the current value of fields



61
62
63
# File 'lib/google/cloud/storage/post_object.rb', line 61

def fields
  @fields
end

#urlString (readonly)

The URL the form must post to.

Returns:

  • (String)

    the current value of url



61
62
63
# File 'lib/google/cloud/storage/post_object.rb', line 61

def url
  @url
end