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函數去除右邊的郵箱域名。