我正在测试Google App Engine,并尝试运行一个简单的功能将文件上传到Blobstore或Cloud Storage。我直接在实例的Cloud Shell中输入Python代码。当我打电话时代码失败:
from google.appengine.ext import blobstore
我得到错误代码:
Traceback (most recent call last):
File "upload_test.py", line 1, in <module>
from google.appengine.api import users
ImportError: No module named 'google.appengine'
即使文档说:You can use Google Cloud Shell, which comes with git and Cloud SDK already installed,我也尝试安装一堆库:
gcloud components install app-engine-python
pip install google-cloud-datastore
pip install google-cloud-storage
pip install --upgrade google-api-python-client
我仍然遇到相同的错误。如何使Appengine库正常工作?另外,这是否是创建允许用户上传文件的应用程序的错误方法?
答案 0 :(得分:0)
google.appengine
模块已包含在第一代Python(2.7)运行时中。无法通过pip
,在第二代(3.7)运行时或Cloud Shell中进行安装。
使用它的唯一方法是编写和部署第一代App Engine应用。
答案 1 :(得分:0)
感谢@Dustin Ingram
我在this page中找到了答案。
当前上传到Cloud Storage的“正确”方法是使用google.cloud.storage
。我上面链接的教程解释了如何实现。
但是,我的印象是,它通过google.appengine
使用两倍的带宽作为解决方案。最初,前端将接收一个上传URL,并将文件直接发送到Blobstore(或Cloud Storage)。现在,应用程序上传到后端,而后端又上传到Cloud Storage。
我不太担心,因为我不会处理过大的文件,但是直接上传功能已被终止似乎很奇怪。
无论如何,我的问题已经解决了。