class Aliyun::Oss::Bucket

Attributes

creation_date[RW]
domain[RW]
extranet_endpoint[RW]
intranet_endpoint[RW]
location[RW]
name[RW]

Public Class Methods

all() click to toggle source

Class method - List all buckets in my account

# File lib/aliyunoss/bucket.rb, line 18
def self.all
  Aliyun::Oss::API.list_bucket.raise_unless(Net::HTTPOK).to_buckets
end
create(name, location = 'oss-cn-hangzhou') click to toggle source

Class method - Create a new bucket

# File lib/aliyunoss/bucket.rb, line 25
def self.create(name, location = 'oss-cn-hangzhou')
  Aliyun::Oss::API.put_bucket(name, location).raise_unless(Net::HTTPOK)
  Bucket.new(:name => name,  :location=> location, :creation_date => Time.now)
end
new(params = {}) click to toggle source
# File lib/aliyunoss/bucket.rb, line 7
def initialize(params = {})
  params.each_pair {|k,v| send("#{k.to_s}=", v) }
  if String === @creation_date
    @creation_date =~ /(\d+) ([a-zA-Z]+) (\d+) (\d\d):(\d\d):(\d\d)/
    @creation_date = Time.gm($3, $2, $1, $4, $5, $6)
  end
end

Public Instance Methods

delete(path) click to toggle source

Delete remote file

# File lib/aliyunoss/bucket.rb, line 63
def delete(path)
  Aliyun::Oss::API.delete_object(self, path).raise_unless(Net::HTTPNoContent)
end
delete!() click to toggle source

delete this bucket

# File lib/aliyunoss/bucket.rb, line 122
def delete!
  Aliyun::Oss::API.delete_bucket(self).raise_unless(Net::HTTPNoContent)
end
disable_logging() click to toggle source
# File lib/aliyunoss/bucket.rb, line 126
def disable_logging
  Aliyun::Oss::API.delete_logging(self).raise_unless(Net::HTTPNoContent)
end
disable_website_access() click to toggle source
# File lib/aliyunoss/bucket.rb, line 138
def disable_website_access
  Aliyun::Oss::API.delete_website(self).raise_unless(Net::HTTPNoContent)
end
download(path, options = {}) click to toggle source

Download file from remote server

# File lib/aliyunoss/bucket.rb, line 47
def download(path, options = {})
  Aliyun::Oss::API.get_object(self, path, options)
    .raise_unless(Net::HTTPOK)
    .body
end
enable_logging(target_bucket_name, log_prefix) click to toggle source
# File lib/aliyunoss/bucket.rb, line 130
def enable_logging(target_bucket_name, log_prefix)
  Aliyun::Oss::API.enable_bucket_logging(self, target_bucket_name, log_prefix).raise_unless(Net::HTTPOK)
end
enable_website_access(index_page, error_page) click to toggle source
# File lib/aliyunoss/bucket.rb, line 142
def enable_website_access(index_page, error_page)
  Aliyun::Oss::API.put_bucket_website(self, index_page, error_page).raise_unless(Net::HTTPOK)
end
get_acl() click to toggle source
# File lib/aliyunoss/bucket.rb, line 154
def get_acl
  Aliyun::Oss::API.get_bucket_acl(self).raise_unless(Net::HTTPOK).to_acl_status
end
list_files(options = {}) click to toggle source

List all files in an bucket

# File lib/aliyunoss/bucket.rb, line 33
def list_files(options = {})
  Aliyun::Oss::API.list_object(self, options).raise_unless(Net::HTTPOK).to_objects
end
logging_status() click to toggle source
# File lib/aliyunoss/bucket.rb, line 134
def logging_status
  Aliyun::Oss::API.get_bucket_logging(self).raise_unless(Net::HTTPOK).to_logging_status
end
multipart_abort(path, upload_id) click to toggle source
# File lib/aliyunoss/bucket.rb, line 76
def multipart_abort(path, upload_id)
  Aliyun::Oss::API.multipart_upload_abort(self, path, upload_id)
    .raise_unless(Net::HTTPNoContent)
end
multipart_copy_from(source_bucket, source_path, size, range = nil) click to toggle source
# File lib/aliyunoss/bucket.rb, line 91
def multipart_copy_from(source_bucket, source_path, size, range = nil)
  response = Aliyun::Oss::API.multipart_upload_from_copy(@multipart_id,
                                                         source_bucket, source_path,
                                                         self, @multipart_path,
                                                         @multipart_sequence,
                                                         size, range)
  response.raise_unless(Net::HTTPOK)
  @multipart_list[@multipart_sequence] = response['ETag']
  @multipart_sequence = @multipart_sequence + 1        
end
multipart_pending() click to toggle source

Multipart upload and copy

# File lib/aliyunoss/bucket.rb, line 70
def multipart_pending
  Aliyun::Oss::API.multipart_upload_unfinished_task(self)
    .raise_unless(Net::HTTPOK)
    .to_mutlipart_task
end
multipart_upload(data) click to toggle source
# File lib/aliyunoss/bucket.rb, line 81
def multipart_upload(data)
  raise 'You must call multipart_upload_initiate before upload data.' unless @multipart_path
  response = Aliyun::Oss::API.multipart_upload_part(self, @multipart_path,
                                         @multipart_id,
                                         data, @multipart_sequence)
  response.raise_unless(Net::HTTPOK)
  @multipart_list[@multipart_sequence] = response['ETag']
  @multipart_sequence = @multipart_sequence + 1
end
multipart_upload_complete() click to toggle source
# File lib/aliyunoss/bucket.rb, line 111
def multipart_upload_complete
  Aliyun::Oss::API.multipart_upload_complete(self, @multipart_path,
                                             @multipart_id,
                                             @multipart_list)
    .raise_unless(Net::HTTPOK)
  @multipart_path = nil
end
multipart_upload_initiate(path) click to toggle source
# File lib/aliyunoss/bucket.rb, line 102
def multipart_upload_initiate(path)
  @multipart_path = path
  @multipart_id = Aliyun::Oss::API.multipart_upload_initiate(self, path)
                  .raise_unless(Net::HTTPOK)
                  .to_multipart_id
  @multipart_list = {}
  @multipart_sequence = 1
end
set_acl(permission) click to toggle source
# File lib/aliyunoss/bucket.rb, line 150
def set_acl(permission)
  Aliyun::Oss::API.put_bucket_acl(self, permission).raise_unless(Net::HTTPOK)
end
share(path, expires_in = 3600) click to toggle source

Generate a url that can be shared to others

# File lib/aliyunoss/bucket.rb, line 56
def share(path, expires_in = 3600)
  Aliyun::Oss::API.generate_share_url(self, path, expires_in)
end
upload(data, path, options = {}) click to toggle source

Upload data to bucket

# File lib/aliyunoss/bucket.rb, line 40
def upload(data, path, options = {})
  Aliyun::Oss::API.put_object(self, path, data, options).raise_unless(Net::HTTPOK)
end
website_access_status() click to toggle source
# File lib/aliyunoss/bucket.rb, line 146
def website_access_status
  Aliyun::Oss::API.get_bucket_website(self).raise_unless(Net::HTTPOK).to_website_status
end