Class: RightAws::S3Generator::Bucket

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

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(s3, name) ⇒ Bucket

Create new S3LinkBucket instance.



1041
1042
1043
# File 'lib/s3/right_s3.rb', line 1041

def initialize(s3, name)
  @s3, @name = s3, name.to_s
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



1019
1020
1021
# File 'lib/s3/right_s3.rb', line 1019

def name
  @name
end

#s3Object (readonly)

Returns the value of attribute s3.



1019
1020
1021
# File 'lib/s3/right_s3.rb', line 1019

def s3
  @s3
end

Class Method Details

.create(s3, name, expires = nil, headers = {}) ⇒ Object

Create new S3LinkBucket instance and generate creation link for it.



1036
1037
1038
# File 'lib/s3/right_s3.rb', line 1036

def self.create(s3, name, expires=nil, headers={})
  new(s3, name.to_s)
end

Instance Method Details

Return a link to create this bucket.



1047
1048
1049
# File 'lib/s3/right_s3.rb', line 1047

def create_link(expires=nil, headers={})
  @s3.interface.create_bucket_link(@name, expires, headers)
end

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

Generate link to delete bucket.

bucket.delete(2.hour)


1090
1091
1092
# File 'lib/s3/right_s3.rb', line 1090

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

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

Generate link to GET key data.

bucket.get('logs/today/1.log', 1.hour)


1082
1083
1084
# File 'lib/s3/right_s3.rb', line 1082

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

#key(name) ⇒ Object

Return a S3Generator::Key instance.

bucket.key('my_cool_key').get    #=> https://s3.amazonaws.com:443/my_awesome_bucket/my_cool_key?Signature=B...D&Expires=1180820032&AWSAccessKeyId=1...2
bucket.key('my_cool_key').delete #=> https://s3.amazonaws.com:443/my_awesome_bucket/my_cool_key?Signature=B...D&Expires=1180820098&AWSAccessKeyId=1...2


1065
1066
1067
# File 'lib/s3/right_s3.rb', line 1065

def key(name)
  Key.new(self, name)
end

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

Generate link to list keys.

bucket.keys
bucket.keys('prefix'=>'logs')


1056
1057
1058
# File 'lib/s3/right_s3.rb', line 1056

def keys(options=nil, expires=nil, headers={})
  @s3.interface.list_bucket_link(@name, options, expires, headers)
end

Return a public link to bucket.

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


1030
1031
1032
1033
# File 'lib/s3/right_s3.rb', line 1030

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

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

Generates link to PUT key data.

puts bucket.put('logs/today/1.log', 2.hour)


1073
1074
1075
1076
# File 'lib/s3/right_s3.rb', line 1073

def put(key, meta_headers={}, expires=nil, headers={})
  meta = RightAws::S3::Key.add_meta_prefix(meta_headers)
  @s3.interface.put_link(@name, key.to_s, nil, expires, meta.merge(headers))
end

#to_sObject Also known as: full_name



1021
1022
1023
# File 'lib/s3/right_s3.rb', line 1021

def to_s
  @name
end