google-app-engine - 如何从 GAE 的 blobstore 下载具有原始文件名的文件?

标签 google-app-engine http-headers filenames blobstore

将文件上传到 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/

相关文章:

Python:获取给定文件夹中特定文件类型的名称

PHP正则表达式提取URL中文件名的第一部分

java - 在 Solaris 上使用 Java 的文件名重音

google-app-engine - 谷歌应用引擎项目 : Server Error The server encountered an error and could not complete your request

java - 是否可以在谷歌应用引擎应用程序(java)中使用嵌入式数据库,如 javadb 或 berkeley db

android - 使用 Volley 调整 Android 中的用户代理

http - Cache-Control : max-age=0 and no-cache?有什么区别

google-app-engine - GAE SSL 证书要求

java - 在 GAE 中使用 HttpSession 时,我还需要做什么?

php - NGINX 允许带有下划线的 header