【问题标题】:Store and retrieve files from outside the WAR in google app engine?在谷歌应用引擎中从 WAR 外部存储和检索文件?
【发布时间】:2012-05-03 04:46:15
【问题描述】:

嗯,我很高兴在家中使用本地 Apache Tomcat 工作并在 FileServlet 的帮助下提供静态文件,而且我正在遵循 this answer 中所述的说明:

您不应将文件存储在网络内容中。当 WAR 未展开时,这将失败,即使展开,所有文件也会在您重新部署 WAR 时丢失。

但现在我在我的应用程序中使用Google App Engine,我无法配置服务器,它也使用jetty,这对我来说是新的。我的 Web 应用程序中的所有内容都通过 eclipse 上传到服务器,但我无法将文件夹上传到 WAR 之外。现在如何使用Servlet 在此处应用此类静态文件服务,我应该使用Google Blobstore 吗? ,或者只是一个可以是Google Cloud SQL 的数据库,或者还有其他出路吗?

谢谢,
阿西夫

【问题讨论】:

    标签: java google-app-engine web-applications file-upload blobstore


    【解决方案1】:

    链接中的答案不适用于您:它是说不应该上传(即以编程方式创建)文件到 webcontent 文件夹。

    只需将您想要提供的静态文件放在您的应用程序文件夹中。请参阅using static files 上的文档。

    【讨论】:

    • 好的..如果我有任何问题我必须以编程方式创建_file?我应该在哪里做呢?
    • 将数据另存为 Blob 到 Datastore 或使用 Blobstore。
    【解决方案2】:

    您不需要 FileServlet 来提供静态内容。相反,声明打算为静态的文件,App Engine 将管理为它们提供服务。如果由于某种原因您需要以编程方式读取文件,则将其声明为资源。

    https://developers.google.com/appengine/docs/java/config/appconfig#Static_Files_and_Resource_Files

    【讨论】:

    • 嗯,这似乎是我的解决方案..直接上传静态内容没有任何问题,同时上传(以编程方式创建)内容作为资源?
    • 这取决于上传的时间。如果您有方便捆绑到战争中的数据,您可以这样做或单独将其上传到数据存储区或 Blob 存储区。例如,上传带有战争的.properties 文件,但如果您有具有自己生命周期的数据,比如zipcode.dat,您可能希望通过一些仅限管理员的 URL 以编程方式“上传”它。
    猜你喜欢
    • 1970-01-01
    • 2011-11-21
    • 2017-01-07
    • 1970-01-01
    • 2018-05-09
    • 1970-01-01
    • 2012-10-13
    • 2014-10-30
    • 2015-02-01
    相关资源
    最近更新 更多