【问题标题】:How to upload file to Google Cloud Storage without using webform如何在不使用 webform 的情况下将文件上传到 Google Cloud Storage
【发布时间】:2014-04-20 14:38:48
【问题描述】:

我能够基于https://gist.github.com/voscausa/9541133成功设置GCS并上传文件,从中提取以下内容以向您展示它的作用。

field_storage = self.request.POST.get("file", None)

with gcs.open(gcs_file_name, 'w', content_type=content_type,
              options={b'x-goog-acl': b'public-read'}) as f:
    f.write(field_storage.file.read())

谁能告诉我如何从完整路径文件名的字符串(例如,c:\file1.jpg)以编程方式生成一个 blob 对象(例如 field_storage),而不是使用获取(cgi.FieldStorage)输入的网络表单?这将允许我批量上传文本文档中列出的多个文件。

提前感谢您的帮助。

【问题讨论】:

  • 如果您的意思是如何发布多部分消息,请查看以下要点:gist.github.com/voscausa/9222732
  • 感谢您的回复。实际上,我希望能够在不使用网络表单 POST 的情况下将文件从本地文件夹上传到 GCS。 GAE 似乎不允许我这样做。希望我错了。

标签: google-app-engine cgi google-cloud-storage


【解决方案1】:
f = open(r'c:\file1.jpg')
data = f.read()

【讨论】:

  • 感谢您的回复。但是,当我尝试它时,我得到 [Errno 13] 文件不可访问。除非通过网络表单,否则 Google AppEngine 似乎不允许在客户端访问本地文件?
  • 啊。抱歉,我没有意识到您的代码正在 App Engine 上运行。 App Engine 应用无权访问本地文件系统,因此您将无法读取或写入任意文件(只能读取您使用应用上传的文件)。你能描述一下你在更高层次上想要做什么吗?您要上传的文件在哪里?
  • 对不起,我不是很清楚。我试图允许用户上传他们的联系人列表,包括填充在文本文件中的朋友姓名、电话号码和照片(完整路径图像文件名),以避免一次上传一个联系人。当然,我希望上传图像文件而不是文件名字符串。谢谢!
猜你喜欢
  • 2015-12-08
  • 1970-01-01
  • 2018-10-31
  • 1970-01-01
  • 2016-02-03
  • 2022-08-05
  • 2018-12-23
  • 1970-01-01
  • 2016-08-28
相关资源
最近更新 更多