upyun使用
原理:将本地app的附件上传到upyun中,然后本地的附件(包括图片,pdf文件等)在本地显示的时候只是上传到upyun中url地址,达到cdn的效果。这就是cnd的操作步骤和效果。
使用步骤:
创建服务选择全网加速服务;源站类型选择有拍云;授权已有的操作员jayzen;设置CNAME: 参考万网中设置cname的提示进行设置,came的意思是将相同的域名指向同一个位置,其中upan提供的cdn存储地址是zhengjiajun.b0.aicdn.com,作为cname的记录值,用户自己可以进行域名绑定,用户的域名是zhengjiajun.com, 进行域名绑定的域名是file.zhengjiajun.com, 其中zhengjiajun.b0.aicdn.com和file.zhengjiajun.com指向的是同一个位置,但是前者不能访问,没有进行备案。
管理上传内容:登录https://uptool.tingfun.net(在chrome中无效,safari中有效)
图片上传到云端(只使用upyun)
#gemfile
gem 'upyun'
#resumes_controller.rb
class ResumesController < ApplicationController
def create
@resume = Resume.new(resume_params)
@resume.save
bucket = 'jayson' #服务名称
operator = 'jayzen' #操作员名称
password = 'password' #操作员密码
upload_file = params[:resume][:attach]
upyun = Upyun::Rest.new(bucket, operator, password)
remote_file = "/public/uploads/resume/attach/#{@resume.id}/#{upload_file.original_filename}"
response = upyun.put remote_file, upload_file.read
render :json => {
:response => response,
:url => "http://test.zhengjiajun.com#{remote_file}"
}
end
end
借助carrierwave-upyun上传到云端
#gemfile
gem 'carrierwave'
gem 'carrierwave-upyun'
#config/initializers/carrierwave.rb
CarrierWave.configure do |config|
config.storage = :upyun
config.upyun_username = "xxxxxx" #操作员名称
config.upyun_password = 'xxxxxx' #操作员密码
config.upyun_bucket = "my_bucket" #服务名称
config.upyun_bucket_host = "http://test.zhengjiajun.com"
end
#attachment_uploader.rb
class AttachmentUploader < CarrierWave::Uploader::Base
storage :upyun
end
#定制图片,可以在upyun中定制方法custom方法,url中获取如下
http://test.zhengjiajun.com/uploads/resume/attach/17/pic_demo.png!custom