PDA

查看完整版本 : 撰寫中的 網路硬碟程式 preview!


ckmarkhsu
2006-03-23, 05:00 AM
哈,之前看到 Ricado 前輩展示他的 MyFolder 程式

感覺很心動,也頗方便:) 不過可惜是 For ASP,而我常用的卻是 PHP + MYSQL 平台

而目前台面上的免費的 PHP 網路硬碟程式

不是不能完善支援多用戶,就是不支援中文Orz

因此就興起了自己撰寫的念頭:)

不過因為純粹是 for fun 因此沒有做什麼計畫,純粹是照自己的感覺寫:)

從早上開始撰寫到現在,約 8 個小時,目前已經完成前台大部分的功能,目前在加緊撰寫後台

v1.0 預定的功能有
1. PHP4 + MySQL 平台
2. UTF-8 編碼,檔名、資料夾、帳號全部支援中文:) (不過很好笑 IE 不支援 UTF8 檔名下載 Orz)
3. 支援多用戶,有簡單權限控制
4. 支援帳號流量與容量控管
5. 所有上傳下載均有 log 紀錄:)
6. 帳號可大於 32,768 個XD"

第六點沒什麼意義XD 一般的程式會有此限制,是因為他們將所有檔案都放至同一個資料夾內
而某些系統同資料夾有 32,768 個檔案的限制,某些系統上,這樣也會拖慢讀取效能

簡單來說,我不是放再同一個資料夾就是了:) 做法跟 無名 與 pixnet 的相同:)


這是目前完成的預覽圖XD

http://img380.imageshack.us/img380/3733/dbwebhd5yl.jpg

ps. 因為我不暗 HTML 風格設計^^"所以做的有點難看,不過因為是採模板設計,所以修改上很簡單:)


等功能大致完成後,再勞煩各位前輩幫忙測試與指教^^ (退場)

nickyeahyeah
2006-03-23, 08:04 AM
.....已經有 opensource 的了....

ras0314
2006-03-23, 08:47 AM
自己寫~~是訓練自己和提升自己實力的一個重要階段~~~以後想修改和加強功能才能自己來~~不然什麼都有opensouce~~都不寫的話~~~那~~~只能處於被動

Ricado
2006-03-23, 09:08 AM
自己寫~~是訓練自己和提升自己實力的一個重要階段~~~以後想修改和加強功能才能自己來~~不然什麼都有opensouce~~都不寫的話~~~那~~~只能處於被動

~yes

這是目前普遍的觀念,要程式就網路上找,找到了就用,也不去看看程式的架構或有沒有漏洞。

小弟最近還協助刑事警察局處理一個購物網站後門的案子,目前很多人要架購物網站,不願意花錢買商用軟體、又不願意到Open Source的官方網站下載(因為是英文的),因此到處亂Copy,有人還整理成光碟的在網路上販賣,結果那些販售的原始碼有好幾套都預留後門,知道後門的人可以輕易掌控受害者的電腦。

網路硬碟目前免費的軟體、Open Source非常多,但要注意,因為程式本身對電腦具有存取權,因此若不小心,危害會比一般購網站還大。因此建議要使用Open Source還是到知名的官方網站下載,或是自行撰寫。

nickyeahyeah
2006-03-23, 09:47 AM
自己寫~~是訓練自己和提升自己實力的一個重要階段~~~以後想修改和加強功能才能自己來~~不然什麼都有opensouce~~都不寫的話~~~那~~~只能處於被動


別人已經成熟了的 opensource project 一定比你自己寫的初號版完善,
分明是 "opensource" 了,
你不去學習參考,
可以的話加以改進,
而去自己 "reinvent the wheel",
是非常不明智的.

如果要提升自己,
應該先把精神放在學習前人完善了的經驗上,
開發還未得到應用的領域,
才是你訓練和提升自己實力的機會.

參考一個現有的模版,
去複製它的功能,
抱歉,
在 software development 中,
這只是 "programmer" 的 level,
在工業上,
這只是 "代工".

ckmarkhsu
2006-03-23, 10:25 AM
.....已經有 opensource 的了.......
而目前台面上的免費的 PHP 網路硬碟程式

不是不能完善支援多用戶,就是不支援中文Orz

:)                

steven
2006-03-23, 10:35 AM
學生時代試著自己去開發一些東西,這樣做沒錯.
加油!

Viya
2006-03-23, 10:38 AM
對呀~很多事都要嘗試,尤其自己想的東西去創作,所以ckmarkhsu兄加油~yes

ckmarkhsu
2006-03-23, 10:51 AM
感謝 steven學長 跟 Viya前輩的鼓勵:)

其實這次寫這個對一些概念的實做熟悉了不少 ex 多用戶

收穫應該還算不小:) 畢竟用看的根自己寫還是有段差距^^"

roger
2006-03-23, 10:51 AM
自己去完成一個專案後,會覺得很多觀念突然之間就打通了,ckmarkhsu兄,加油加油!

ras0314
2006-03-23, 11:13 AM
加油~~~~

以後有寫出不錯的~~~

要給我用喔~~~~

^^

coolhd
2006-03-23, 12:20 PM
自己寫是成長的一個階段,模仿別人的寫法也是一種學習...^^

Ricado
2006-03-23, 12:32 PM
感謝 steven學長 跟 Viya前輩的鼓勵:)

其實這次寫這個對一些概念的實做熟悉了不少 ex 多用戶

收穫應該還算不小:) 畢竟用看的根自己寫還是有段差距^^"

有個地方要不要挑戰一下,我們目前也正在做。

Web 介面最大的好處是人性化,操作方便,但以效能來說跟 FTP 差很多,而且用Web作多檔或大檔傳送並不適合。原本是覺得直接再架一個FTP,將兩套系統作好對應即可,但還是無法解決很多人不會使用FTP的困境。

因此想說再開發一個免安裝的網路硬碟用戶端程式,如果檔案太多、或是檔案太大,就先下載這個工具程式(希望壓到100K左右),由這個工具將檔案以壓縮串流方式上傳至指定的資料夾,使用的還是HTTP 通訊協定,ckmarkshu 有興趣可以討論一下。

PS:當產品開發出來的時候是不是感覺很爽
~iwin

wmh
2006-03-23, 01:04 PM
加油!自己動手開發是非常不錯的。

加上有 open 出來讓大家批評指教更是進步的好方法,不論是 open 概念、想法、open 讓人使用、甚至是 open source,都會接收到很多寶貴的意見,可以讓下一個產品更成熟。

1paper
2006-03-23, 01:25 PM
ckmarkhsu兄加油~~~yes

自已完成的成就感非凡,白話一點就是爽度很高。:songyy

web介面的上傳是不是通常都比較難突破5M?自已經驗是5M容易上傳失敗。

robowang
2006-03-23, 02:05 PM
有個地方要不要挑戰一下,我們目前也正在做。

Web 介面最大的好處是人性化,操作方便,但以效能來說跟 FTP 差很多,而且用Web作多檔或大檔傳送並不適合。原本是覺得直接再架一個FTP,將兩套系統作好對應即可,但還是無法解決很多人不會使用FTP的困境。

因此想說再開發一個免安裝的網路硬碟用戶端程式,如果檔案太多、或是檔案太大,就先下載這個工具程式(希望壓到100K左右),由這個工具將檔案以壓縮串流方式上傳至指定的資料夾,使用的還是HTTP 通訊協定,ckmarkshu 有興趣可以討論一下。

PS:當產品開發出來的時候是不是感覺很爽
~iwin


網路硬碟, 透過 Web 介面運作, 這是一定要的基本功能

而如果另外要寫一個"工具程式"讓使用者下載, 然後透過這個程式來存取網路硬碟
那麼, 希望這個工具程式在使用上, 能夠在使用者的電腦上, 模擬出一具磁碟機
使用者只要照一般磁碟機的使用法, 複製, 貼上, 拖放等等, 就可以操作網路磁碟的檔案
這樣的介面, 會比較容易讓人接受

steven
2006-03-23, 02:40 PM
這讓我想起ezbas,以封閉系統提供拍賣網站服務,結果失敗了.
網路硬碟還是應該在瀏覽器上下功夫比較好.

Ricado
2006-03-23, 04:49 PM
這讓我想起ezbas,以封閉系統提供拍賣網站服務,結果失敗了.
網路硬碟還是應該在瀏覽器上下功夫比較好.

您可能誤會了!網路硬碟原有介面不變,只是多一個上傳方式,目前很多的軟體下載也都會使用 Java applet或ActiveX技術,但因為安全問題常被擋掉,所以才會想乾脆多寫一個介面,讓User自己選擇。

至於HTTP檔案限制,有兩個地方要注意,以.NET HttpRuntime為例,限制 4MB,這個設定值每個系統不一樣,都可以透過參數設定放鬆。

除了參數設定,大檔還一個問題是連線逾時的問題,因此必須相對提高連線時間,否則即是放寬檔案大小限制,還是可能斷線失敗。

ckmarkhsu
2006-03-23, 06:12 PM
Ricado 前輩您見笑了,我只能發表一點 end user 的想法^^"


您提到以自己撰寫的工具上傳檔案,http 有傳檔大小與連線遇時的問題

不曉得有沒有可能直接使用 FTP 通訊協定,介面上做的親合一點,ex 直接拖 & 拉

不知道這樣會不會好一點:)


其實我也曾經想過用 http 協定做一個上傳工具,不過因為我只會用 VB6 ^^"

所以我是想將檔案分割成 數個 2MB 檔案,上去後再重新結合^^"


ps. 看到多用戶的網路硬碟在跑,真的很爽XD"
ps2. 之前跟我配合作模板的學弟最近在斷考Orz 所以我發現我幾乎花了大部分的時間再做模板Orz

nickyeahyeah
2006-03-23, 08:14 PM
至於HTTP檔案限制,有兩個地方要注意,以.NET HttpRuntime為例,限制 4MB,這個設定值每個系統不一樣,都可以透過參數設定放鬆。
~iwin


you use the .NET linker to deploy the application without using the .NET framework, or you'll require your users having the .NET framework installed?

personally, I prefer VC for this kind of applications.

Ricado
2006-03-23, 08:32 PM
不曉得有沒有可能直接使用 FTP 通訊協定,介面上做的親合一點,ex 直接拖 & 拉

FTP的門檻在於資料連線部分,不論PASV MODE或PORT MODE,很多人都搞不定,如果要用這種方式,直接架個FTP Server對應過去就可以了。



其實我也曾經想過用 http 協定做一個上傳工具,不過因為我只會用 VB6 ^^"


VB6一樣可以,只是不知道 Php的作法是怎麼做?原理很簡單,將檔案轉成Stream(建立 Byte Array將資料塞進去即可),上傳至Server,Server端接收之後轉為檔案。

如過用WS-Attachment 技術就更棒了,不過 php不支援。

之前清大參加國際競賽的那套語音點歌系統,原本也是使用 FTP的方式,就是使用者唱幾句,系統辨識之後,透過網路將歌曲下載播放,後來小弟也是請他們改成 ws-Attachment的方式,直接以附件方式,透過標準HTTP傳送。

也就是說,如果用VB6,就用Byte Array的方式,如果用VB.NET就使用 ws-Attachment,若需要範例程式,我在把之前給清大的 Source Code 給你。

最重要的是,你很有本錢,我的第一之程式是17歲寫出來的,已經20幾年了,你還很多機會可以嘗試自己想玩的技術,這都是累積未來的功力,等到年紀大想賺錢的時候,有 Open Source可以參考就參考,就不一定要全部自己寫了。~greenlau:

ckmarkhsu
2006-03-24, 01:47 PM
哈,不好意思 Ricado 前輩,小弟先完成目前的程式,再認真來思考您出的問題:)

這樣比較能專心,余資質駑鈍,沒辦法一心二用^^"


這是 admincp 的預覽圖XD" (當然功能還不齊全,仍在加緊撰寫中)

http://img99.imageshack.us/img99/1377/snap6nd.gif

我發現我越寫,他長的越像 vBulletin Orz ~dead (可能是我太熟悉他的環境Orz..)

不過這隻 php 程式,每個 chr 可都是我自己 keyin 的喔:) 完全沒有抄襲任何程式

值得一題的是,這程式的 "一般設定" 因為是儲存於資料庫中

因此可以開啟 debug 模式後,簡易的透過後台新增,以方便往後想要自己修改程式的人:)

dmwc
2006-03-24, 02:14 PM
最重要的是,你很有本錢,我的第一之程式是17歲寫出來的,已經20幾年了,你還很多機會可以嘗試自己想玩的技術,這都是累積未來的功力,等到年紀大想賺錢的時候,有 Open Source可以參考就參考,就不一定要全部自己寫了。
說的很正確,有Open Source時何必再花自己的時間去做重複的事情,不如把心力留在其他地方,而且寫一個程式對一個會寫的人是很簡單的,但要從別人的程式開始才是難事一件

而且寫一個程式最多的時間不是在Keyin 新的程式碼,而是在後續維護和除錯要花很多心力

ckmarkhsu
2006-03-24, 03:05 PM
說的很正確,有Open Source時何必再花自己的時間去做重複的事情,不如把心力留在其他地方,而且寫一個程式對一個會寫的人是很簡單的,但要從別人的程式開始才是難事一件

而且寫一個程式最多的時間不是在Keyin 新的程式碼,而是在後續維護和除錯要花很多心力...
恩,我想我懂您的意思,但您似乎沒注意到我的第一偏 post:)

目前似乎沒有支援 多用戶 + 支援完善中文的程式,所以應該不是在做重複的事情啦:)

且,透過這次撰寫,也增強了一些概念跟經驗

另外我覺得花最多時間的雖然是 keyin ,但是最花腦力的卻是構思(如果這麼簡單的程式也有演算法跟資料結構的話:P)

(其實我也絕得打字很無聊Orz,不過我現在還沒大牌到能請別人來撰寫阿XD")

寫一個程式對會寫程式的人來說確實是容易的,但是撰寫的方式卻可以差異懸殊

例如,我這次 將所有模板資料庫化、檔案儲存模式、免修改新增設定值等等

雖然不是什麼新概念,但卻是一般 open source 沒有的:P

我個人覺得還是很有意義啦,況且改別人的程式,恐怕會比重寫來的曼XD"

ckmarkhsu
2006-03-26, 09:10 PM
我剛剛再返回台北的火車上想到一個方式,批次上傳

大概的想法是,先請使用者輸入條件

上傳的檔案位置: c:\upload\pic.r(*)

起始值: 01 結束值: 09

然後就用 php 去產生網頁,自動在 type=file 的 input 中放入 c:\upload\pic.r01~09

然後用 js 去自動 submit.......

可惜阿,瀏覽器考量到安全性,無法讓 file 類型的 input 吃預設字串....

所以只好另想方法啦^^"

目前正在找 xp 內建發佈精靈的說明文件,google 還沒找到

有哪位前輩有現成的可以提供嗎^^" 感恩~~

accepter
2006-03-26, 11:51 PM
乘坐交通工具的時候,有時也會激起許多靈感

ckmarkhsu
2006-03-26, 11:54 PM
抱歉修改您的文章,請勿全文引用,以節約資源:)

是阿,因為在上面不想東西會被吵死....總是有人喜歡在公共場合大聲講手機....

seesawgame
2006-03-27, 12:06 AM
徐同學加油!!期待您的大作啦!!
另外發現「traditionalChinese.org」在你的手上
前幾天聯合國取消繁體中文文件,我就有去查這個字
http://www.domain.club.tw/showthread.php?t=11145

ckmarkhsu
2006-03-27, 01:00 AM
不敢不敢,只是練習一下而已^^" 目前正在寫 log 根統計的部分:)

是阿,當初很無聊就把那個 dn 拿下來,看看哪天能不能發揚一下正體中文XD"