Class: RightAws::S3Generator::Key

Inherits:
Object
  • Object
show all
Defined in:
lib/s3/right_s3.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(bucket, name, meta_headers = {}) ⇒ Key

Returns a new instance of Key.



1120
1121
1122
1123
1124
1125
# File 'lib/s3/right_s3.rb', line 1120

def initialize(bucket, name, meta_headers={})
  @bucket       = bucket
  @name         = name.to_s
  @meta_headers = meta_headers
  raise 'Key name can not be empty.' if @name.right_blank?
end

Instance Attribute Details

#bucketObject (readonly)

Returns the value of attribute bucket.



1097
1098
1099
# File 'lib/s3/right_s3.rb', line 1097

def bucket
  @bucket
end

#nameObject (readonly)

Returns the value of attribute name.



1097
1098
1099
# File 'lib/s3/right_s3.rb', line 1097

def name
  @name
end

Instance Method Details

#delete(expires = nil, headers = {}) ⇒ Object

Generate link to delete key.

bucket.delete(2.hour) #=> https://s3.amazonaws.com:443/my_awesome_bucket/logs%2Ftoday%2F1.log?Signature=4...D&Expires=1180820032&AWSAccessKeyId=1...2


1147
1148
1149
# File 'lib/s3/right_s3.rb', line 1147

def delete(expires=nil,  headers={})
  @bucket.s3.interface.delete_link(@bucket.to_s, @name, expires,  headers)
end

#full_name(separator = '/') ⇒ Object

Return a full S# name (bucket/key).

key.full_name #=> 'my_awesome_bucket/cool_key'


1107
1108
1109
# File 'lib/s3/right_s3.rb', line 1107

def full_name(separator='/')
  "#{@bucket.to_s}#{separator}#{@name}"
end

#get(expires = nil, headers = {}, response_params = {}) ⇒ Object

Generate link to GET key data.

bucket.get('logs/today/1.log', 1.hour) #=> https://s3.amazonaws.com:443/my_awesome_bucket/logs%2Ftoday%2F1.log?Signature=h...M%3D&Expires=1180820032&AWSAccessKeyId=1...2


1139
1140
1141
# File 'lib/s3/right_s3.rb', line 1139

def get(expires=nil, headers={}, response_params={})
  @bucket.s3.interface.get_link(@bucket.to_s, @name, expires, headers, response_params)
end

#head(expires = nil, headers = {}) ⇒ Object

Generate link to head key.

bucket.head(2.hour) #=> https://s3.amazonaws.com:443/my_awesome_bucket/logs%2Ftoday%2F1.log?Signature=4...D&Expires=1180820032&AWSAccessKeyId=1...2


1155
1156
1157
# File 'lib/s3/right_s3.rb', line 1155

def head(expires=nil,  headers={})
  @bucket.s3.interface.head_link(@bucket.to_s, @name, expires,  headers)
end

Return a public link to key.

key.public_link #=> 'https://s3.amazonaws.com:443/my_awesome_bucket/cool_key'


1115
1116
1117
1118
# File 'lib/s3/right_s3.rb', line 1115

def public_link
  params = @bucket.s3.interface.params
  "#{params[:protocol]}://#{params[:server]}:#{params[:port]}/#{full_name('/')}"
end

#put(expires = nil, headers = {}) ⇒ Object

Generate link to PUT key data.

puts bucket.put('logs/today/1.log', '123', 2.hour) #=> https://s3.amazonaws.com:443/my_awesome_bucket/logs%2Ftoday%2F1.log?Signature=B...D&Expires=1180820032&AWSAccessKeyId=1...2


1131
1132
1133
# File 'lib/s3/right_s3.rb', line 1131

def put(expires=nil, headers={})
  @bucket.put(@name.to_s, @meta_headers, expires, headers)
end

#to_sObject



1099
1100
1101
# File 'lib/s3/right_s3.rb', line 1099

def to_s
  @name
end