将文件上传到 blobstore 后,它会将其重命名为“s9QmBqJPuiVzWbySYvHVRg==”之类的名称。如果您导航到它的“/serve”URL 来下载文件,下载的文件将被命名为这个字母组合。
有没有办法让下载的文件在上传时保留其原始文件名?
最佳答案
当使用 BlobUploadHandler
上传文件时
原始文件名作为名称属性存储在新创建的 BlobInfo
实体中。
在 blob 服务处理程序中,您可以指定 blob 应该作为下载附件返回,并且您可以指定它应该用什么名称保存
from google.appengine.ext import webapp
import urllib
class ServeHandler(blobstore_handlers.BlobstoreDownloadHandler):
def get(self, blob_info_key=None):
blob_info_key = str(urllib.unquote(blob_info_key))
blob_info = retrieve_blob_info(blob_info_key)
self.send_blob(blob_info, save_as=blob_info.filename)
blob_app = webapp.WSGIApplication([
('/_s/blob/([^/]+)', blob.ServeHandler),
], debug=config.DEBUG)
关于google-app-engine - 如何从 GAE 的 blobstore 下载具有原始文件名的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12200997/