1、为什么部署在coding上的pages会支持SSL
为什么部署在coding上的pages会支持SSL
关注leancloud已经有一段时间了,其宣布的众多开发语言支持,以及SMS, 对象存储, 用户管理及鉴权,推送,聊天等服务对于开发目前主流的移动应用来说,吸引力很大。我们开发的不同移动应用,需要去维护不同的管理后台和服务,开发起来重复而繁琐,如果leancloud能够帮助我们减轻这些工作,那真是物超所值。
为了将应用迁移到leancloud的方案大概如下:
使用leancloud作为后端存储,用户管理和鉴权引擎;
使用python开发一个管理界面, 来帮助管理员编辑文章,发布信息;
使用js, oc作为前端语言来开发用户界面;
在第二步的时候, 我们希望先试验下如下两个简单的user cases:
创建若干个对象,存储在leancloud中;
注册一个用户,确定注册结果,并能验证提供的手机和邮箱;
就是这么两个最简单的用例,一整个晚上下来,居然没有搞定。 首先,除了官方文档,leancloud基本很难看到任何其它形式的文档,比如FAQ, 论坛,社区,stackoverflow, 反正google不出来,其次,就是这仅有的官方文档,也是坑爹啊, 以下是我从官方文档上copy的代码片段,几乎未做修改。
# -*- coding: utf-8 -*-
#coding=utf-8
import leancloud
APP_ID=''
APP_KEY=''
MASTER_KEY=''
leancloud.init(APP_ID, "%s/%s" % (APP_KEY, MASTER_KEY))
user = leancloud.User()
user.set("username", "admin")
user.set("password", "admin")
user.set("email", "")
# other fields can be set just like with leancloud.Object
user.set("phone", "415-392-0202")
try:
user.sign_up()
except Exception, e:
print e
# Hooray! Let them use the app now.
问题1: SSL InsecurePlatformWarning
在Mac OS和Linux上运行该程序,用户注册失败,并会首先观察到如下的警告:
/usr/lib/python2.7/site-packages/requests-2.6.0-py2.7.egg/requests/packages/urllib3/util/ssl_.py:79: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see .
InsecurePlatformWarning
不过一番查找后发现这好像是urllib3的一个通用问题,可以按照如下方法来解决。但是如此通用的问题,居然连一个FAQ都看不到。
$ pip install pyopenssl ndg-httpsclient pyasn1
问题2: sign_up()报告401错误
解决问题1以后,sign_up()会一直报告401错误(unauthorized), 经过近一个小时的定位,发现该错误由leancloud初始化函数导致, 编程指南上的用法如下:
leancloud.init(APP_ID, "%s/%s" % (APP_KEY, MASTER_KEY))
但是参考手册上确是这么写的:
leancloud.client.init(APP_ID, APP_KEY, MASTER_KEY)
两个方式都不会报告语法错,但是前者确好像不能正常工作,查了好久才找到后面的API, 坑爹啊。
问题3: sign_up()允许重复注册
以上测试代码,连续执行两次,居然都成功了,并且在leancloud后台能看到两条相同的用户纪录。sign_up()默认居然可以重复注册?找了好久,发现应用选项中可以配置启用注册用户邮箱验证等选项,勾选了以后,第二次调用sign_up报错。
问题4: sign_up()无法获得失败原因
捕获到sign_up()异常后,本想打印该异常来获得失败原因,结果却导致如下异常:
Traceback (most recent call last):
File "test1.py", line 23, in <mole>
print e
UnicodeEncodeError: 'ascii' codec can't encode characters in position 6-16: ordinal not in range(128)
问题5: Python sdk没有相关的API来验证注册用户的邮箱或者手机
用户sign_up以后,可以看到leancloud应用后台的_user表中会有该用户信息,同时还有验证邮箱的链接,但是我如果在自己的python后台中提供这个功能呢?百事不得其解。
问题6: 官方文档的语法错误
以下是leancloud Python SDK编程指南的例程, 可以看出第五行应该是game_score.save()而不是game.save()
game_score = GameScore()
game_score.set('score', 42) # or game_score.score = 42
game_score.set('cheatMode', False)
game_score.set('playerName', 'Marvin')
game.save()
# 还可以通过关键字参数,在创建对象的同时进行赋值
game_score = GameScore(score=42, playerName='Marvin')
2、如何在gitlab修改x-frame-options 设置
使用 X-Frame-Options 有三个可选的值:
DENY:浏览器拒绝当前页面加载任何Frame页面
SAMEORIGIN:frame页面的地专址只能为同属源域名下的页面
ALLOW-FROM:origin为允许frame加载的页面地址
绝大部分浏览器支持:
Feature
Chrome
Firefox (Gecko)
Internet Explorer
Opera
Safari
Basic support 4.1.249.1042 3.6.9(1.9.2.9) 8.0 10.5 4.0
3、虚拟机中使用ssh连接github显示ssh: Could not resolve hostname github.com: Name or service not known
这里是因为你的/etc/hosts没有写上映射,在文件中添加上你的IP加上localhost。
解决内方法为:容
[java] view plaincopy
vi etc/hadoop/hadoop-env.sh
加入:
[java] view plaincopy
exportHADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_PREFIX}/lib/native
修改:
[java] view plaincopy
export HADOOP_OPTS="-Djava.library.path=$HADOOP_PREFIX/lib"
4、在自己搭建的gitlab中,能部署用户可访问的前端打包文件吗?
不知道 自建的gitLab 是否有 pages服务,
但是你既然有自己的服务器,应该是可以通过 Nginx 配置 ,将版路径映射到权你打包后的目录中去。这个是可以实现的
nginx 静态文件服务器的配置请百度。
5、本地服务器怎么使用gitlab pages
GitLab由Ruby语言发基于LinuxGit服务器我见强Git服务器发现立即决定Git服务器换GitLab
安装GitLab面临问题何服务器git项目直接导入GitLab前Git服务器由git+apache搭建(详见Linux用Apache搭建Git服务器)
网发现篇文档——Import bare repositories into your GitLab instance并按进行操作
1)设置存放代码库主目录
vi /etc/gitlab/gitlab.rb
比设置:git_data_dir "/gitlab/repos"
2)访问刚搭建GitLab站点创建group比cnblogs
/gitlab/repos 创建 /gitlab/repos/repositories/cnblogs 文件夹
/gitlab/repos/repositories/创建文件夹比cnblogs
3)现所git项目文件复制文件夹
cp -r /data/git/* /gitlab/repos/repositories/cnblogs
4)修改复制文件夹所者:
chown -R git:git /gitlab/repos/repositories/cnblogs
5)运行GitLab导入命令
cd /var/opt/gitlab
gitlab-rake gitlab:import:repos
等段间显示done却项目没导入进
经研究发现导入GitLab认文件夹名.git结尾项目于要导入项目文件夹名称加.git缀再进行导入
结显示导入功比:
Processing cnblogs/CNBlogsJob.git
* Created CNBlogsJob (cnblogs/CNBlogsJob.git)
Done!
GitLab站点却看已导入项目努力没能解决问题
实没办改手导入导入:
1)GitLab站点创建与要导入项目同名项目
2)进入刚创建项目文件夹
cd /gitlab/repos/repositories/cnblogs/项目名称.git
3)删除该文件所文件
rm -rf *
4)要导入项目文件夹所文件复制
cp -r /data/git/CNBlogsJob/* /gitlab/repos/repositories/cnblogs/CNBlogsJob.git
项目导入进
5)导入完修改导入所项目文件所者
chown -R git:git /gitlab/repos/repositories/cnblogs
修改所者客户端进行git push
手完现Git项目导入
备注:操作系统CentOS 6.2GitLab版本7.8.4
6、Gitlab配置的时候可以不绑定域名吗
可以的。
1.在gitlab的配置gitlab.yml中,host为你本机的ip
2.在gitlab-shell的配置config.yml中,gitlab_url:“http://yourip”
3.建议绑定一个,不然不清楚有没版有配置成功。不权绑定的话也可以修改host为ip地址,可以是你的本地ip。
7、有人试过用 GitLab Pages 部署 hexo 博客吗
我没部署过hexo博客,不过也大概了解过,刚才去试了一下,大致是这样的:
1. 你的sensui7.github.io是hexo部署的,那应该在不是的分支里(如source)进行hexo init,编写文章什么的也都在这里做
2. _config.yml里设置的repository应为对应的repo名,你的配置文件有误,应为: [email protected]:sensui7/sensui7.github.io.git(而不是[email protected]:sensui7/sensui7.git)
3. 在source分支里执行 hexo g && hexo deploy,将生成的静态文件同步到master分支上,这样github pages才能正确地渲染。
以上应该就是你的hexo博客的问题所在了。我在我的github上新建了一个名为hexo_blog的repo,因为项目的pages是不同的,渲染的是gh-pages下的文件,因此应该在master下init,branch写gh-pages,然后hexo g && hexo deploy同步到gh-pages上。
这是我刚生成的链接:
css貌似有点问题,因为比较匆忙,可能是哪里的设置没处理好。
至于你的名为blog的repo,我想也是设置或者流程上哪里出了问题。
反正我的程序出bug的时候,怀疑环境是最后一步,第一步肯定是先查自己的代码有没有问题是吧?
8、excel 如何提取电子邮箱域名及用户名
电子邮箱的域名都有一个显著的特征,就是无论是什么后缀,都会有符号@,因此我们可以利用这个特性使用公式:
1、提取邮箱用户名,公式为:=LEFT(A1,FIND("@",A1)-1)。公式解析:用find函数找到@字符的位置,然后用left函数取出@字符左边的字符数。为什么要减1,是因为@字符本身占了一个位置。
2、提取邮箱域名,公式:=RIGHT(A1,(LEN(A1)-FIND("@",A1)))。公式解析:用find函数找到@字符的位置,然后用len函数计算总的字符数,并相减,在用right函数去除右边的邮箱域名。