前情提要:

身为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网站的更多相关文章

  1. [Ting's笔记Day7]活用套件carrierwave gem:(2)利用Amazon S3架设图片服务器

    来到第7篇了!培养写作习惯真是不容易:) 在我的上一篇文章活用套件carrierwave gem:(1)在Rails实现图片上传功能,上传图片功能已经完成啦!但是目前图片仅能上传在自己的本地文件夹内孤 ...

  2. [Ting's笔记Day6]活用套件carrierwave gem:(1)在Rails实现图片上传功能

    carrierwave是一款经典的图片上传套件,本篇的目标是先在本地端(development)的rails项目试成功gem. (预计中集的进度会练习怎么利用Amazone S3架设图片上传Host, ...

  3. [Ting's笔记Day9]活用套件Carrierwave gem:(4)使用Imagemagick修改图片大小

    前情提要: 这几天我都在实验Carrierwave这套图片上传套件,也顺利部署到Heroku架站正式环境了.:) 接下来我遇到了新的问题:要如何在上传的时候,让Carrierwave gem大型siz ...

  4. 学习web前端技术的笔记,仅供自己查阅备忘,图片上传预览

    <!DOCTYPE html><html><head lang="en"> <meta charset="UTF-8" ...

  5. cocoon + carrierwave 多图片上传用法

    gem 'cocoon' gem 'carrierwave' gem 'mini_magick' 1.图片上传carrierwave配置,github 自己手动添加的配置,没用命令生成 在app下新建 ...

  6. ASP.NET工作笔记之一:图片上传预览及无刷新上传

    转自:http://www.cnblogs.com/sibiyellow/archive/2012/04/27/jqueryformjs.html 最近项目里面涉及到无刷新上传图片的功能,其实也就是上 ...

  7. SpringMVC:学习笔记(10)——整合Ckeditor且实现图片上传

    SpringMVC:学习笔记(10)——整合Ckeditor且实现图片上传 配置CKEDITOR 精简文件 解压之后可以看到ckeditor/lang下面有很多语言的js,如果不需要那么多种语言的,可 ...

  8. AntDesign vue学习笔记(七)Form 读写与图片上传

    AntDesign Form使用布局相比传统Jquery有点繁琐 (一)先读写一个简单的input为例 <a-form :form="form" layout="v ...

  9. MVC OF UEditor 图片上传- 额外参数 笔记

    最近正巧需要用到UEditor ,因为需求,.需要把上传的图片数据上传到阿里云的OSS与记录图片相关信息到MS SQL中 . 不得已只能翻UEditor的实现代码>_<痛苦. 备忘笔记: ...

随机推荐

  1. Java六大必须理解的问题

    Java六大必须理解的问题 对于这个系列里的问题,每个学Java的人都应该搞懂.当然,如果只是学Java玩玩就无所谓了.如果你认为自己已经超越初学者了,却不很懂这些问题,请将你自己重归初学者行列.内容 ...

  2. ELF文件加载与动态链接(一)

    关于ELF文件的详细介绍,推荐阅读: ELF文件格式分析 —— 滕启明.ELF文件由ELF头部.程序头部表.节区头部表以及节区4部分组成. 通过objdump工具和readelf工具,可以观察ELF文 ...

  3. Python 学习之路的前言

    做为一个编程小白,除了大三的时候考了VB的二级之后,就在也没有接触过其它有关计算机之类的知识.考入材料的研究生之后,越来越觉得自己不想继续这个行业,选择计算机作为自己以后要走的路,所下的决心所用的时间 ...

  4. [CF1041F Ray in the tube][数学]

    http://codeforces.com/contest/1041/problem/F 题目大意: 下边界有n个给定点,上边界有m个给定点,可以从任意一个点发出一条激光,激光碰到边界会反射 激光到达 ...

  5. 学习笔记TF033:实现ResNet

    ResNet(Residual Neural Network),微软研究院 Kaiming He等4名华人提出.通过Residual Unit训练152层深神经网络,ILSVRC 2015比赛冠军,3 ...

  6. SQL 入门了解

    SQL 随着应用程序的功能越来越复杂,数据量越来越大,如何管理这些数据就成了大问题: 读写文件并解析出数据需要大量重复代码: 从成千上万的数据中快速查询出指定数据需要复杂的逻辑. 如果每个应用程序都各 ...

  7. session token两种登陆方式

    Session 和 Token 其实Session和Token总体上还是很相似的,但是也有以下区别: 1. 过期时间:Session的过期时间存在cookie的Max-age字段,Token的过期时间 ...

  8. PythonStudy——Python 内置函数 Built-in function

    内置方法:Python中声明每一个类系统都会加上一些默认内置方法,提供给系统调用该类的对象时使用.比如需要实例化一个对象时,需要调用该类的init方法:使用print去打印一个类时,其实调用的是str ...

  9. liunx学习笔记(一:常用命令)

    linux: 在学习linux之前我们应该多少了解windows的一些相关操作,linux也就是类似windows的另一种操作系统,用来管理软硬件的一种应用.在windows下你可以通过鼠标点击相关的 ...

  10. Session、Cookie、Cache、Token分别是什么及区别

    一.Session 1 )Session 解释 Session 是单用户的会话状态.当用户访问网站时,产生一个 sessionid.并存在于 cookies中.每次向服务器请求时,发送这个 cooki ...