Access denied, Please sign in and make sure you have proper permission.
    
   
    
  
    
      
      
        
        这是又拍云技术回复我的:
您好,对于图片路径的问题,需要您的程序修改相应的引用路径,也就是把图片默认的引用域名,切换成又拍云的默认域名或您绑定的域名。
对于已经生成的缩略图或者根据您程序生成的缩略图,您只要把图片搬到又拍云后,保持路径的正确,就可以正常访问了,跟又拍云的缩略图规则没有关系的。
我已经把原先服务器上的图片上传至又拍云上面。
只是之前引用的是 /uploads/pictures/xxxxxxxxxx.jpg
目前需要的是http://files.domain.com/uploads/pictures/xxxxxxxx.jpg
        
       
      
     
    
    
      
        
            
    
        
          
          
          
            原先的 picture_uploader.rb
原先上传文件的路径是uploads/pictures/image/xxxxxxx.jpg
require "digest/md5"
require "carrierwave/processing/mini_magick"
class PictureUploader < CarrierWave::Uploader::Base
  include CarrierWave::MiniMagick
  storage :file
  def store_dir
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
  end
  process :resize_to_fit => [900, 600]
  version :thumb do
    process :resize_to_fill => [200, 200]
  end
  version :thumb_small, :from => :thumb do
    process :resize_to_fill => [150, 150]
  end
  def extension_white_list
    %w(jpg jpeg gif png)
  end
  def filename
    if super.present?
      @name ||= Digest::MD5.hexdigest(File.dirname(current_path))
      "#{@name}.#{file.extension.downcase}"
    end
  end
end
现在 picture_uploader.rb
require "digest/md5"
require "carrierwave/processing/mini_magick"
IMAGE_UPLOADER_ALLOW_IMAGE_VERSION_NAMES = %(origin thumb.medium thumb.small)
class PictureUploader < CarrierWave::Uploader::Base
  def store_dir
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}"
  end
  def default_url
    "#{Setting.upload_url}/blank.png#{version_name}"
  end
  def url(version_name = "")
    @url ||= super({})
    version_name = version_name.to_s
    return @url if version_name.blank?
    if not version_name.in?(IMAGE_UPLOADER_ALLOW_IMAGE_VERSION_NAMES)
      raise "ImageUploader version_name:#{version_name} not allow."
    end
    [@url,version_name].join("!")
  end
  def extension_white_list
    %w(jpg jpeg gif png)
  end
  def filename
    if super.present?
      model.uploader_secure_token ||= SecureRandom.uuid.gsub("-","")
      Rails.logger.debug("(BaseUploader.filename) #{model.uploader_secure_token}")
      "#{model.uploader_secure_token}.#{file.extension.downcase}"
    end
  end
end
现在上传之后的路径是 http://files.domain.com/uploads/picture/image/xxxxxxx.jpg
           
          
         
     
   
  
    
        
        
          
          
          
            把store_dir里的 mounted_as 去掉就好了。
           
          
         
     
   
  
    
        
        
          
          
          
            #2 楼 @_kaichen thanks alot!  确实这样,之前一直不知道怎么弄,原来如此。哈哈
但是有个问题,我用 ftp 上传图片,但是那么多图片,ftp 有时候断掉或者有些图片无法上传 (服务器问题或是我这网络问题),这一般如何解决呢?