[英]Upload file and store in session or DB
我知道上传到GAE的文件必须存储在GCS中-但是,如果我希望将数据存储在BLOB或会话中以便立即处理和丢弃,该怎么办?
可能吗? 临时文件存储在哪里? 在当前请求超时或完成之前,我可以访问$ _FILES全局内容吗?
我没有使用PHP。 在Python中,您可以将多部分表单数据发布到自己的处理程序中,而无需使用blobstore或GCS。 您可以在处理程序中读取数据(临时StringIO对象)。
这仅适用于小文件! 我没有理由也可以在PHP中使用它。
Python example.py:
import webapp2
import mimetypes
class FileUpload(webapp2.RequestHandler):
def get(self):
form = """
<!DOCTYPE HTML>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>File Upload</title>
</head>
<body>
<form action="/file_upload" enctype="multipart/form-data" method="post">
<div><input type="file" name="file" /></div>
<div><input type="submit" value="Upload"></div>
</form>
</body>
</html>
"""
self.response.headers[b'Content-Type'] = b'text/html'
self.response.write(form)
def post(self):
file_upload = self.request.POST.get("file", None)
name = file_upload.filename
data = file_upload.file.read()
self.response.headers[b'Content-Type'] = mimetypes.guess_type(name)[0]
self.response.write(data)
路由: webapp2.Route(r'/file_upload', handler='example.FileUpload')
BlobStore与GCS相比没有优势,而且价格更高。 Memcache随时可能丢失。
我建议您将文件上传到Google Cloud Storage。 下次需要时,将其从GSC读取为字符串,并将其存储在Memcache中。 当然,这样做的唯一原因是,如果您经常需要此文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.