2008/06/16

GAE: Link One

上一篇文章有提到要開始寫一個GAE(Google App Engine)的服務
不過對GAE的環境完全不熟 也不會用Python 所以我就先設計了兩個簡單的服務作練習

第一個是短網址服務 因為隨便註冊到的GAE名稱叫l1 所以命名叫Link One
雖然是練習,不過還是盡量做的完整 功能盡量齊全 也提共API的服務
因為沒有短的Domain 因此申請l1appspot上是我能找到最短的網址了XD
如果有人覺得站寫的不錯,想要借我domain用的話也可以聯絡我(*^^*)
服務設計原理很簡單,對URL做Hash取其中幾碼再加上隨機排序的1到兩的字碼
組成的一組Key作為短網址 不過此設計有可能造成資料重複
因此同一個hash值的網址 在出現3萬多次之後會被蓋掉舊的資料
不過一照此網站的使用情況應該是很難發生吧 而且GAE僅提供500MB的儲存大小
以一組資料約1K來算,僅能儲存50萬筆資料,希望他的Quota會越來越大XD

此網站也登錄到App Gallery上 不過此類型應用應該沒啥人有興趣吧
此服務還在持續改版中 不過功能大致完成 僅剩下後端管理的部份
以後有時間再慢慢來寫 現在很忙沒空XD
-
新想法...把短網址服務拿來作網摘 bookmark 也不錯用
把API拖進工具列 看到喜歡的網站就按一下...也蠻方便的
不過此功能來需要幾個子功能
feed輸出 選擇是否公開個人頁面 使用API新增時 可輸入描述等
以及新增tag來作分類
一樣 有空再寫吧
-
目前實際上線後 有一些問題要解決....
當進行資料庫的存取時 如果太久沒有回應 會有Exception產生(僅GetbyName 不是query)
通常會發生在深夜時段 也就是國外的網路尖峰時期 其他時間倒是沒發生過
而我程式收到Exception時 就會出現錯誤畫面
所以會造成服務不是很穩定的現象 需要重新整理來重送資料
目前不知道如何解決 這似乎和GAE本身 跟BigTable的機制有關 或是我程式寫的爛
再說吧....
update 原來這是那一天GAE故障 全世界都一樣不能存取
-
以下為Change logs
V1.1 20080601
對每一個Hash值所對應的Index隨機排序,使用SLink為服務名稱
隨機挑選不同hash func方式來hash,每日寄送統計資料到管理者帳號
利用資料庫記錄總新增次數 每日新增次數 查詢次數等資訊
記錄每一個鏈結的點及次數 在使用者管理介面顯示
V1.2 20080601
修正index.yaml
V1.3 20080602
將Description欄位型態修改為Text 提升長度, 改進安全字元處理
Type無法使用 移除它, 修改日期問題 修正範圍限制 預設值等
開放所有功能給未登入使用者
Memcache for static, 管理者 Init Static
V1.4 20080602
移除'|'
V1.5 20080602
修改PrintableStringIndexLen位置
V1.6 20080602
再次修改IndexList 加入<[\]`{}| 修改長度計算方式
新㽪允許子網域,預覽子網域,修改允許URL為CJK字元
V1.7 20080603
新增Templates,css,js等,加入Google Analytics,修改URL
V1.8 20080603
CJKV字元短連結
V1.9-11 20080605
修改程式架構, 修正bugs
V2.1 20080606
修改程式架構以降低CPU使用率, 修正Bugs
V2.2-2.18 20080606
fix Bugs for GAE Errors
V3.1 20080616
管理介面 檢視各類型連結,提共API 並輸出為HTML,修改名稱為LinkOne
被動建立使用者資訊 儲存預設選項 Desc 過期日 KeySize 每頁幾筆資料
提供Full CJKV API版本能使用使用者預設值,修改過期日期資料型態
修改URL的資料型態為Text來允許不同的協定,新增Logo圖檔
3.2 20080616
移除debug時的設定 修改網址

Todo:
Art Design,
使用者條款 English Version 補齊
管理者介面,加入除密碼外需要登入才能檢視及連結選項
新增網摘模式 可輸出個人feed 是否公開個人頁面 tag功能
使用API新增時 選擇是否輸入描述(需登入)

--
update 20090506
清除了一些廣告用的連結
原始source code找不到了 沒法繼續更新@@

Via This link

2 comments:

匿名 提到...

您好

想請教 您是怎麼申請到2碼的GAE帳號的?

不是規定帳號要6碼以上嗎?

Josh 提到...

剛發表GAE時無限制

 
Back to Top
This Site Power by JoStudio. Some Rights Reserved.