1

我目前正在开发 Facebook 应用程序,我需要执行以下操作: 创建一个包含“key”、“user”和“link”字段的哈希。链接字段应该包含一个字符串,即 json 文件的地址。

现在,我的问题如下:我从 facebook 收集数据并将其存储在 json 文件中。当一个事件被调度(例如用户点击一个按钮)时,如何在 heroku 上创建一个文件DIRECLTY ,有点像一个文件夹,并将 URL 放入链接字段的哈希中?我的位置应该看起来像.../[user]/myfile.json

或者,如果不是heroku,你能推荐另一个我可以做同样事情的主机吗?

注意:我是刚开始接触数据库,对SQL只有非常基础的了解,数据库还没有做完。我对postgres一无所知,但如果喜欢的话,我可以学习。我的应用程序主要是用php开发的。

4

2 回答 2

3

正如@hakre 所说,Heroku 在Ephemeral 文件系统上运行应用程序。这意味着当实例重新启动时,您的本地存储将丢失。

根据您要存储的数据,有多种存储方式可供选择。

  1. Cookie:以 cookie 的形式发回,让浏览器处理。如果数据由用户创建并且在某个时间点过期,这是可行的。
  2. PostgreSQL:如果您在应用程序中使用 SQL 数据库,它可以去那里。作为反序列化的行或TEXT字段。
  3. CDN:如果数据要对所有人公开,您可以将其上传到例如 Amazon S3 或 Rackspace CloudFiles 并发布容器。然后你可以通过 URL 引用它。
  4. 云存储:如果数据需要一些访问控制,您仍然可以将其上传到 S3 或 CloudFiles,并在请求时以编程方式从那里提取。如果存在性能问题,您可以将其缓存在 Memcache 或其他一些缓存插件中。
  5. 文档数据库:将数据存储MondoDBCouchDBJSON 文档。两者都有很多功能。写作和阅读是两者的基本操作。如果您需要版本历史记录,CouchDB请为您执行此操作(默认情况下它存储 JSON 的所有修订版本。
  6. 浏览器本地存储:现在我们有了 HTML5,您可以在浏览器上存储数据。它有点流血,并且不适用于仍然存在的一些较旧的浏览器。

除了文件之外,还有很多其他方法可以将 JSON 文档存储在其他位置。这些只是冰山一角。

于 2013-03-13T13:44:16.353 回答
2

要直接在 heroku 上创建文件,您需要在源代码树中创建文件,然后在发布应用程序时将其存储在 heroku 上。

当然,这不适用于您要在应用程序运行时创建的文件。Heroku 不支持在同一服务器上运行时创建文件。至少不会因为文件系统不是持久的(对于不属于源树的任何内容)而将它们留在那里。

您需要在数据库或其他远程位置(如Amazon S3 )中创建这些“文件” 。

另见:

于 2013-03-13T06:55:02.790 回答