class CarrierWave::Nos::Bucket

Constants

PATH_PREFIX

Public Class Methods

new(uploader) click to toggle source
# File lib/carrierwave/nos/bucket.rb, line 6
def initialize(uploader)
  @nos_access_key = uploader.nos_access_key
  @nos_secret_key = uploader.nos_secret_key
  @nos_endpoint = uploader.nos_endpoint
  @nos_bucket = uploader.nos_bucket
end

Public Instance Methods

path_to_url(path) click to toggle source

根据配置返回完整的上传文件的访问地址

# File lib/carrierwave/nos/bucket.rb, line 32
def path_to_url(path)
  "https://#{@nos_bucket}.#{@nos_endpoint}/#{path}"
end
put(path, file) click to toggle source

上传文件 params:

  • path - remote 存储路径

  • file - 需要上传文件的 File 对象

returns: 图片的下载地址

# File lib/carrierwave/nos/bucket.rb, line 19
def put(path, file)
  path.sub!(PATH_PREFIX, '')

  res = oss_upload_client.put_file(file, path)

  if res.code == 200
    path_to_url(path)
  else
    raise 'Put file failed'
  end
end

Private Instance Methods

oss_upload_client() click to toggle source
# File lib/carrierwave/nos/bucket.rb, line 38
def oss_upload_client
  return @oss_upload_client if defined?(@oss_upload_client)
  @oss_upload_client = NosClient.new(@nos_access_key, @nos_secret_key, @nos_bucket, @nos_endpoint)
end