我正在建立一个不需要人们登录但仍需要大量会话数据的网站。
示例:一个人上传0.5 MB文件。我希望能够从现在开始操纵这个。我应该在哪里存放?我更喜欢像cookie系统这样的东西,但显然这个太小了。 Redis似乎是一个机会,但我希望能有更简单的东西。
我正在使用Python烧瓶。
提前致谢。
答案 0 :(得分: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 Filesystem API将文件存储在客户端,这样他们就不会来到您的服务器并使用JavaScript操作文件。
第一种方法的优点是你可以存储大型文件并使用许多不同的工具(不仅仅是Python)来操作它们。缺点是您必须存储文件并确保清理文件名(以避免服务器被黑客攻击)。
第二种方法的优点是您不需要在服务器上存储任何东西(因此您不必为额外的存储付费)。缺点是您可能会限制您可以存储的数据量,并且您只能访问在浏览器中运行的库(即仅限JS)或您必须通过所有当你需要做一些更复杂的事情时,数据会传到你的服务器上。
答案 1 :(得分:0)
您应该尝试本地存储。
答案 2 :(得分:0)
您可能需要memcached。它比Redis简单。