[Ting's笔记Day8]活用套件carrierwave gem:(3)Deploy图片上传功能到Heroku网站
前情提要:
身为Ruby新手村民,创造稳定且持续的学习步调很重要,我用的方法就是一周在IT邦写三篇笔记,希望藉由把笔记和遇到的bug记录下来的过程,能帮助到未来想用Ruby on Rails架站的新手。:)
话说我在这一天[Ting's笔记Day4]将Ruby on Rails项目部署到Heroku架好了站,并在此篇[Ting's笔记Day7]活用套件carrierwave gem:(2)利用Amazon S3架设图片服务器完成我的餐厅数据库网站的图片上传功能。接着就要把功能发布到Heroku啦!
1.修改app/uploaders/image_uploader.rb
为了节省Amazon S3用量,(毕竟是免费功能,储存空间一定的限制,能省则省!)
我想在本机项目上传图片时,照片存在本机端就好(xcsjbj);
在Heroku(远端production版本)上传图片的时候,再上传至Amazon S3。
我可以去app/uploaders/image_uploader.rb修改一下代码从:
storage:fog
改成
if Rails.env.production?
storage:fog #Heroku,Use Amazon S3
else
storage:file
end
2.把Figaro gem加入Heroku
在上篇文章提到了Figaro帮我们隐藏application.yml档,做好保护密钥的功能,由于这个功能动到了config,~~这件事情的严重性(?)~~我们必须要让Heroku知道!
跟随着Figaro的关于Deployment的说明档指示,在ternimal输入figaro heroku:set -e production,程序就会把密钥信息传给我在heroku的正式环境。
tingdeMacBook-Air:yelpdemo tingtinghsu$ figaro heroku:set -e production
Setting aws_access_key_id,aws_secret_access_key,fog_directory and restarting⬢tingsrailsdemo…done,v7
aws_access_key_id: #秘密
aws_secret_access_key: #不告诉你
fog_directory: #Amazon S3 bucket
3.把所有改动的代码加入github版控,并push上Heroku:
在这篇文章里我已经对于git使用的熟练熟练了:
1.git status
2.git add .
3.git commit -m“增加照片上传功能”
4.git push
所以我们先把写好的的功能推上github,最后用git push heroku master完成最后一哩路!
tingdeMacBook-Air:yelpdemo tingtinghsu$ git push heroku master
Counting objects: 59,done.
Delta compression using up to 4 threads.
Compressing objects: 100%(52/52),done.
Writing objects: 100%(59/59),331.27 KiB | 0 bytes/s,done.
Total 59(delta 33),reused 0(delta 0)
remote: https://tingsrailsdemo.herokuapp.com/ deployed to Heroku
remote:
remote: Verifying deploy…done.
To https://git.heroku.com/tingsrailsdemo.git
cb86240..05af5ff master -> master
到Heroku后台查看,新功能已经部署成功~
4.把新更动过的的餐厅图片数据库字段加入Heroku
我们当初改完上传功能时,已经在本地端使用rake db:migrate让数据库顺利运行,详见[Ting's笔记Day6]活用套件carrierwave gem:(1)在Rails实现图片上传功能
但远端的Heroku部分还没呢!
因此记得:heroku run rake db:migrate更新Production版本的数据库。
这里Heroku出现错误信息Etimeout: connect etimeout 50.19.103.36:5000
参考这里的解法,才发现我的wifi所在地的防火墙锁port 5000。
我使用run:detached这个指令来解决此问题:heroku run:detached rake db:migrate
tingdeMacBook-Air:yelpdemo tingtinghsu$ heroku run:detached rake db:migrate
Running rake db:migrate on⬢tingsrailsdemo…done,run.2219(Free gongzuofs)
Run heroku logs --app tingsrailsdemo --dyno run.2219 to view the output.
=大功告成=
试试网站上的上传功能,图片顺利存进Amazon S3:)
[Ting's笔记Day8]活用套件carrierwave gem:(3)Deploy图片上传功能到Heroku网站的更多相关文章
- [Ting's笔记Day7]活用套件carrierwave gem:(2)利用Amazon S3架设图片服务器
来到第7篇了!培养写作习惯真是不容易:) 在我的上一篇文章活用套件carrierwave gem:(1)在Rails实现图片上传功能,上传图片功能已经完成啦!但是目前图片仅能上传在自己的本地文件夹内孤 ...
- [Ting's笔记Day6]活用套件carrierwave gem:(1)在Rails实现图片上传功能
carrierwave是一款经典的图片上传套件,本篇的目标是先在本地端(development)的rails项目试成功gem. (预计中集的进度会练习怎么利用Amazone S3架设图片上传Host, ...
- [Ting's笔记Day9]活用套件Carrierwave gem:(4)使用Imagemagick修改图片大小
前情提要: 这几天我都在实验Carrierwave这套图片上传套件,也顺利部署到Heroku架站正式环境了.:) 接下来我遇到了新的问题:要如何在上传的时候,让Carrierwave gem大型siz ...
- 学习web前端技术的笔记,仅供自己查阅备忘,图片上传预览
<!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8" ...
- cocoon + carrierwave 多图片上传用法
gem 'cocoon' gem 'carrierwave' gem 'mini_magick' 1.图片上传carrierwave配置,github 自己手动添加的配置,没用命令生成 在app下新建 ...
- ASP.NET工作笔记之一:图片上传预览及无刷新上传
转自:http://www.cnblogs.com/sibiyellow/archive/2012/04/27/jqueryformjs.html 最近项目里面涉及到无刷新上传图片的功能,其实也就是上 ...
- SpringMVC:学习笔记(10)——整合Ckeditor且实现图片上传
SpringMVC:学习笔记(10)——整合Ckeditor且实现图片上传 配置CKEDITOR 精简文件 解压之后可以看到ckeditor/lang下面有很多语言的js,如果不需要那么多种语言的,可 ...
- AntDesign vue学习笔记(七)Form 读写与图片上传
AntDesign Form使用布局相比传统Jquery有点繁琐 (一)先读写一个简单的input为例 <a-form :form="form" layout="v ...
- MVC OF UEditor 图片上传- 额外参数 笔记
最近正巧需要用到UEditor ,因为需求,.需要把上传的图片数据上传到阿里云的OSS与记录图片相关信息到MS SQL中 . 不得已只能翻UEditor的实现代码>_<痛苦. 备忘笔记: ...
随机推荐
- yarn依赖管理工具的使用
Yarn是Facebook发布的一款依赖管理工具,它比npm更快.更高效. 与NPM命令对照 npm install => yarn install npm install --save [pa ...
- vue中使用axios给生产环境和开发环境配置不同的baseUrl
第一步:设置不同的接口地址 找到文件:/config/dev.env.js 代码修改为: var merge = require('webpack-merge') var prodEnv = requ ...
- 缓慢拒绝服务攻击- slowloris.pl
How use Slowloris Requirements: # sudo apt-get update # sudo apt-get install perl # sudo apt-get i ...
- FlexRay笔记
1.FlexRay具有高速.可靠及安全的特点.FlexRay在物理上通过两条分开的总线通信,每一条的数据速率是10MBit/s.CAN网络最高性能极限为1Mbps,而FlexRay总数据速率可达到20 ...
- day 41 标准文档流 浮动
一.标准文档流 什么是标准文档流 宏观的将,我们的web页面和ps等设计软件有本质的区别,web 网页的制作,是个“流”,从上而下 ,像 “织毛衣”.而设计软件 ,想往哪里画东西,就去哪里画 标准文档 ...
- 十六、springcloud(二)Eureka集群
1.创建子工程spring-cloud-peer(jar) 2.创建application-peer1.properties,application-peer2.properties applicat ...
- [转]golang的goroutine调度机制
golang的goroutine调度机制 版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[-] 一直对goroutine的调度机制很好奇最近在看雨痕的golang源码分析基于go ...
- ES6 基本语法
ECMAScript 6 简介 ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了.它的目标,是使得 JavaScrip ...
- Raspberry3B installation
树莓派系统安装有两种方式,使用镜像安装和使用NOOBS安装.镜像方式安装传统,捣鼓的东西多一些.所以就使用NOOBS吧,NOOBS(New Out Of Box Software)开箱即用的,树莓派官 ...
- Kubernetes Kubelet安全认证连接Apiserver
Kubelet使用安全认证连接Apiserver,可以用Token或证书连接.配置步骤如下. 1,生成Token命令 head -c /dev/urandom | od -An -t x | tr - ...