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 有时候断掉或者有些图片无法上传 (服务器问题或是我这网络问题),这一般如何解决呢?