1

我正在构建一个不需要人们登录但仍需要大量会话数据的网站。

示例:某人上传了一个 0.5 MB 的文件。我希望能够不时地操纵这个。我应该把它存放在哪里?我更喜欢cookie系统之类的东西,但显然这太小了。Redis 似乎是一个机会,但我希望有更简单的东西。

我正在使用 Python 烧瓶。

提前致谢。

4

3 回答 3

1

你有两个选择:

  • 让此人将文件上传到服务器。在这种情况下,您不想将文件存储在会话中 - 相反,您将希望在他们的会话中存储对文件位置的引用(或者如果他们需要能够返回一个新的会话并且仍然使用旧文件)。

    @app.route("/upload", methods=["GET", "POST"])
    def upload_file():
        # Create a folder in your uploads section to store
        # this user's files.
        # Store the file in it (use werkzeug.security.safe_join
        # to ensure the file name is safe).
        # Add the *safe* file name to the session
        # or the datastore (e. g. a database)
        # so you can look it up later
    
  • 使用新的 DOM 文件系统 API 将文件存储在客户端,这样它们就不会到达您的服务器并使用 JavaScript 操作文件。

第一种方法的优点是您可以存储大文件并使用许多不同的工具(不仅仅是 Python)来操作它们。缺点是您必须存储文件并确保清理文件名(以避免服务器被黑客入侵)。

第二种方法的优点是您不需要在服务器上存储任何东西(因此您不必为额外的存储付费)。缺点是您可以存储的数据量可能会受到限制,并且您只能访问在浏览器中运行的库(即仅限 JS),或者您必须将所有数据传递给您的服务器你需要做一些更复杂的事情。

于 2013-06-09T13:50:10.137 回答
0

Yuo 应该尝试 localstorage 。

于 2013-06-03T14:12:54.527 回答
0

可能你需要memcached。它比 Redis 更简单。

于 2013-06-09T13:35:12.247 回答