真的需要在appEngine上传文件

Far*_*rid 1 java upload google-app-engine

我已经开始了一个项目,它是一个让世界听我所有人的歌曲的网络应用程序.到目前为止,网站上提供的所有歌曲都存储在战争/歌曲中.然后,我的数据库只存储这个文件的路径,这非常有效.

我想创建一个只有管理员可以访问的网页(基本上是我:D)才能在这个位置上传我的歌曲,所以我不必部署整个项目只是为了添加一首歌......而我现在正在阅读在app引擎中它是不可能的?我不认为将歌曲存储在数据库中是个好主意?

我可以帮你解决一下我的问题吗?非常感谢 !

此外,如果app引擎不适合我的目标,我想知道一些托管我的Java应用程序的好地方......这似乎很少见!

再次感谢 ..

zac*_*usz 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>
Run Code Online (Sandbox Code Playgroud)

您可以在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>
Run Code Online (Sandbox Code Playgroud)

然后从servlet提供文件:

public void doGet(HttpServletRequest req, HttpServletResponse res)
throws IOException {
    BlobKey blobKey = new BlobKey(req.getParameter("blob-key"));
    blobstoreService.serve(blobKey, res);
Run Code Online (Sandbox Code Playgroud)