go语言云存储项目学习,go语言云项目
go语言云存储项目学习,go语言云项目
学了几天go语言,其实也不太枯燥,就是想结合实际项目操作下,感谢道哥,向才哥,shell,王明,天智,马伟伟,江总,,立元,时少,小魁等人的帮助
开始充满探索的学习,我能说遇到错误都不知道怎么百度吗
1,生成github公钥下载源码(前提是公司的私有仓库给你权限,然后fork到自己的仓库里),clone下代码到本地
1.2 检查SSH公钥 cd ~/.ssh看看存不存在.ssh,如果存在的话,掠过下一步;不存在的请看下一步
1.3生成SSH公钥
$ ssh-keygen -t rsa -C "your_email@youremail.com" # Creates a new ssh key using the provided email Generating public/private rsa key pair. Enter file in which to save the key (/home/you/.ssh/id_rsa):现在你可以看到,在自己的目录下,有一个.ssh目录,说明成功了
1.4输入github密码Enter passphrase (empty for no passphrase): [Type a passphrase] Enter same passphrase again: [Type passphrase again]
这个时候输入你在github上设置的密码。
1.5 然后在.ssh中可以看到Your identification has been saved in /home/you/.ssh/id_rsa. # Your public key has been saved in /home/you/.ssh/id_rsa.pub. # The key fingerprint is: # 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db your_email@youremail.com 添加SSH公钥到github
打开github,找到账户里面添加SSH,把idrsa.pub内容复制到key里面。
1.6 测试是否生效使用下面的命令测试
ssh -T git@github.com
2.make源代码,这里作为测试,只是编译了base和image包
首先要先source 配置文件,类似env.sh等文件,当然可以将source语句放入~/.bashrc中
export GOROOT=/usr/local/go
export GOPATH=~/Desktop/main/sorter:~/Desktop/main/calproj
export PATH=$PATH:$GOROOT/bin
export QBOXROOT=~/qbox
source $QBOXROOT/base/env-mock.sh
source $QBOXROOT/image/env.sh
首先进入base包,make,编译通过
接着进入image包,make,需要第三方包ImageMagick-6.8.9-3.tar.gz
后面测试curl上传图片到服务器时,存在bug
原因ImageMagic版本过高,应该采用ImageMagick-6.8.8-10.tar.gz
lcms2-2.6.tar.gz和lcms2-2.6.tar.gz,解压后安装,在文件夹下
./configure 或者./configure --prefix(指定安装路径)
make
make install
3.运行项目
image的make完成后,进入fop_cgo/bin
运行./qboximage会提示缺少配置文件
find ./ -name "*.conf"找到配置文件,然后将其移动的和qboximage同一文件夹下
运行./qboximage -f qboximage.conf
这里出错要看源代码乐,进入~/qbox/image/fop_cgo/src/qbox.us/app/qboximage,的qboximage.go文件,查看第72行,回溯向上,应该是地址或者是启地址的服务有问题
mes.BindHost对应配置文件qboximage.conf中的本机参数,
log_dir的文件夹不存在,我们手动建立下
mkdir run
mkdir run/auditlog
,接着查看server,这就涉及到了base包里面的fopd,不过这里只是报个警告
4.测试项目
启动服务,可以看出监听的是14102端口,这里我们向服务上传一个图片,这里上传failed是因为ImageMagic版本过高
遇到错误我们要解决,在不知道版本问题的情况下,查看服务器端输出和日志文件
日志文件在image包下的bin/fop_cgo/run/auditlog/image(这个文件夹还是先前错误自己手动加的,因为配置文件qboximage.conf中表明乐)
这里的convert命令是C语言的命令,直接在命令行执行,结果是OK 的,因为service.go中一旦生成成功就会删除临时文件,在临时文件夹找不到变形成功的照片,但是服务端日志打印是成功生成乐,所以程序是对的,考虑是ImageMagic库引入的版本过高
当然也可以先做个测试,让临时文件不删除(去源代码注释掉删除临时文件那句话)
因为我们调用的是修改图片功能(imageView2在url中可以看到哦),一般都在src下
这里对应的参数参照~/qboxtest/qbox/base/biz/src/qbox.us/fop/fopd下的service.go里面的参数设置,注意fsize是图片本身大小
可以在run/autilog/image下查看日志
Go语言是谷歌推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发Go,是因为过去10多年间软件开发的难度令人沮丧。Go是谷歌2009发布的第二款编程语言.2009年7月份,谷歌曾发布了Simple语言,它是用来开发Android应用 Go Logo的一种BASIC语言.
北京时间2010年1月10日,Go语言摘得了TIOBE公布的2009年年度大奖。该奖项授予在2009年市场份额增长最多的编程语言。
谷歌资深软件工 程师罗布·派克(Rob Pike)表示,“Go让我体验到了从未有过的开发效率.”派克表示,和今天的C++或C一样,Go是一种系统语言.他解释道,“使用它可以进行快速开 发,同时它还是一个真正的编译语言,我们之所以现在将其开源,原因是我们认为它已经非常有用和强大.”
不过这种语言尚未成熟,google人员自身也在开发相关项目,还不着急学,不过说是和java很像,如果你学好java,go语言能轻松掌握。
综合来说学JAVA的比较快一些,在网上找例子比较方便
对于一个武林高手来说,用什么编程工具都一样,只是武器不同而已。
评论暂时关闭