2011-07-09 35 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是印刷机出现以来人类进化的下一个阶段。你会被同化 - 抵抗是徒劳的。你想让你的文件得到“真金”服务器的支持吗?即使“黄金”也是一种衍生价值,并且是一种虚拟资产,就像蒙娜丽莎的价值一样。对“真实”文件系统的安全性和稳定性也是如此。