2011-07-09 60 views
1

我已經開始一個項目,它是一個Web應用程序,讓世界聽我所有的個人歌曲。到目前爲止,網站上提供的所有歌曲都存儲在戰爭/歌曲中。然後,我的數據庫只存儲這個文件的路徑,而且工作的非常好。上傳文件在appEngine真的需要

我想創建一個只有管理員才能訪問的網頁(基本上是我:D)在這個位置上傳我的歌曲,所以我不必爲了添加歌曲而部署整個項目......而我我現在正在閱讀,這是不可能在應用程序引擎?我不認爲將歌曲存儲在數據庫中是一個好主意嗎?

我可以讓你對我的問題有所想法嗎?非常感謝 !另外,如果應用程序引擎不適合我的目標,我想知道一些好的地方來承載我的Java應用程序......這似乎很罕見!

再次感謝..

+0

由於我英語不好,我不太瞭解你的問題。你真的想要做什麼?存儲歌曲,但這些歌曲只能自己閱讀嗎?也許你應該看看Google Storage。 @zacheusz的Blobstore解決方案也不錯。上傳到Google存儲比上傳到Blobstore更方便。 – DocWiki

回答

6

這是可能的GAE。只需要將文件存儲在Blobstore中,而不是存儲在文件系統中。而不是路徑,你可以使用blob鍵。您可以上傳您的文件是這樣的:

<body> 
<form action="<%= blobstoreService.createUploadUrl("/upload") %>" method="post" enctype="multipart/form-data"> 
    <input type="file" name="myFile"> 
    <input type="submit" value="Submit"> 
</form> 

你可以在web.xml約束集阻止訪問您的網站:

<security-constraint> 
    <web-resource-collection> 
     <url-pattern>/admin/*</url-pattern> 
    </web-resource-collection> 
    <auth-constraint> 
     <role-name>admin</role-name> 
    </auth-constraint> 
</security-constraint> 

然後從servlet的服務文件:

public void doGet(HttpServletRequest req, HttpServletResponse res) 
throws IOException { 
    BlobKey blobKey = new BlobKey(req.getParameter("blob-key")); 
    blobstoreService.serve(blobKey, res); 
+0

如何做到這一點的好例子。 – Gafanha

2

我真的很驚訝IBM是Google的忠實粉絲。我發現了相當多的IBM公佈的有關Google技術的文獻。嗯....爲什麼?

反正

  1. 什麼是良好的IBM是爲我好: http://www.ibm.com/developerworks/java/library/j-gaestorage/

  2. 什麼是良好的谷歌是爲我好了。 Google不希望您將文件存儲在「文件系統」中。他們希望你使用他們的地圖縮減存儲。

你錯了 - 谷歌存儲庫技術優於你對「文件系統」的看法。首先,您需要閱讀操作系統原則,特別是在「文件系統」部分。文件系統是一個blob的映射。

GAE是一個雲。 「CLOUD」 - 不是桌面,也不是Web服務器,也不是數據庫服務器,也不是多個分立服務器的全面綁定。雲與服務器類似於模擬與離散集成電路,連續統累積智能(有些人「誤用」稱之爲模糊邏輯)與離散的隨機邏輯,量子動力學與牛頓力學。

Continuum(或至少是什麼雲試圖)。在一個連續統一體(或連續統一體)中,你不能存儲你的「文件」。

您已經過時。不,請原諒我,你並沒有過時 - 因爲有許多先進的技術不涉及雲。無論如何,無論你讀傳統的「數據庫」和「文件系統」,都不能適用於雲連續統一體。在雲連續資源轉移中,消費者/客戶轉移。

Google雲存儲不是傳統的數據庫。他們的設計和調整都是爲了讓玩家變得更加輕鬆。

什麼是雲?當您撥打從堪薩斯城,莫拉到埃及開羅的電話或數字連接時,路由器會爲您尋找最佳路線。最適合你的路線?不,但是最大化他們的利潤的最佳途徑。它可以通過海底電纜,衛星​​,未知領域等不斷移動和重新配置。這可能需要更長的路線,因爲它會更便宜。這是稱爲「虛擬」的古老術語。

你不可能依賴傳統的「文件系統」來應對這樣一個虛擬世界。你可以發起一場十字軍東征/聖戰,並堅持,正如一些知名人士正在通過堅持認爲貨幣價值得到「真實」黃金支持來摧毀全球虛擬金融體系的運動。

無論Google存儲,bigtable,亞馬遜簡單db等,它們都類似於「文件系統」映射,除了被配置爲在移動雲上運行。因此,享受雲端並將您的「文件」作爲資產存儲在雲端。

人類與宇宙的其他部分一起進化。 Evolution是Gd的聲音,現在Cloud是印刷機出現以來人類進化的下一個階段。你會被同化 - 抵抗是徒勞的。你想讓你的文件得到「真金」服務器的支持嗎?即使「黃金」也是一種衍生價值,並且是一種虛擬資產,就像蒙娜麗莎的價值一樣。對「真實」文件系統的安全性和穩定性也是如此。