我试着使用carrierwave和雾宝石上传图片到S3上的Ruby on Rails,图像正确上传但是当我尝试涂保存,包含有关刚刚上传即时得到这个错误的图像信息模型:
EXCON ::错误:: MovedPermanently在UserController的#秀
应用程序/模型/ user.rb:46:在'process_image_with_key
应用程序/控制器/ user_controller.rb里:12:在'秀'
< EXCON ::回应:0x007f97846a3c18 @body =?< XML版本= \1.0 \编码= \UTF-8 \> \ N'LT;错误>< code取代; PermanentRedirect< / code><消息>您正试图访问的桶必须使用指定的端点解决请将今后所有申请到这个端点< /消息>
User模型:
mount_uploader:图像,AvatarUploader
高清IMAGE_NAME
File.basename(image.path || image.filename)如果图像
结束
高清process_image_with_key(钥匙)
除非key.nil?
self.key =关键
self.remote_image_url = self.image.direct_fog_url(with_path:真)
self.save!
结束
结束
AvatarUploader:
#编码:UTF-8
类AvatarUploader< CarrierWave ::上传::基地
包括CarrierWaveDirect ::上传
包括CarrierWave :: RMagick
#包括链轮佣工的Rails 3.1+资产管道兼容性:
包括链轮::助手:: RailsHelper
包括链轮::助手:: IsolatedHelper
包括CarrierWave :: MIMETYPES
过程:set_content_type
版本:拇指做
过程resize_to_fill:[50,50]
结束
结束
用户控制
高清节目
@user = User.find_by_id(PARAMS [:ID])
@ user.process_image_with_key(PARAMS [:密钥])
@uploader = User.new.image
@ uploader.success_action_redirect = user_url(@ user.id)
结束
carriwerwave初始化
CarrierWave.configure办|配置|
config.fog_credentials = {
:供应商=> AWS,
:aws_access_key_id => ENV ['AWS_ACCESS_KEY_ID'],
:aws_secret_access_key => ENV ['AWS_SECRET_ACCESS_KEY'],
:地区=> 美西1'
}
config.fog_directory = ENV ['AWS_FILE_BUCKET']
config.fog_attributes = {'的Cache-Control'=>最大年龄= 315576000'}
结束
的Gemfile
创业板carrierwave
创业板rmagick
宝石'雾'
创业板carrierwave_direct
解决方案
Amazon S3 在大多数地区/所有 AWS的SDK 是的美国标准的,它的自动请求路由到设施在北弗吉尼亚州或西北太平洋地区使用网络地图的(见的