python - 如何从 Google App Engine 读取 Google Cloud Storage 文件

标签 python google-app-engine google-cloud-storage

如何打开存储在 Google Cloud Storage 中的文件(从 App Engine)?

我正在使用 Python、Flask 和 App Engine(灵活环境)。该文件不是公开的,存储桶属于 App Engine 项目,因此设置了正确的权限。

app.yaml

runtime: python
env: flex
entrypoint: gunicorn -b :$PORT view:app
runtime_config:
  python_version: 3.5
env_variables:
    CLOUD_STORAGE_BUCKET: <project-xxxx>

查看.py

...
from google.cloud import storage 
gcs = storage.Client()

@app.route('/start_serving/<file_name>')
def start(file_name):
    WHAT TO DO HERE?

#Rest of the app

提前谢谢您。 我在文档中找不到任何相关内容。它提供了如何创建存储桶、如何上传、如何下载、如何授予权限的信息,但没有提供如何读取它的信息。

此外,如何从我的计算机打开它(在运行“gcloud app deploy”命令之前)?

最佳答案

我有一个 python2.7 flex 应用程序,我使用 blob.upload_from_string() 上传到 GCS,但看起来有一个 blob.download_as_string() 所以也许这样的事情会起作用

from google.cloud import storage

project_id = os.environ['GCLOUD_PROJECT']
CLOUD_STORAGE_BUCKET = "%s.appspot.com" % project_id

@app.route('/start_serving/<file_name>')
def start(file_name):
    gcs = storage.Client()
    bucket = gcs.get_bucket(CLOUD_STORAGE_BUCKET)
    blob = bucket.blob(file_name)
    return blob.download_as_string()

关于python - 如何从 Google App Engine 读取 Google Cloud Storage 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48739671/

相关文章:

python - 在 Python 中实现 NFA

python - 有没有办法重命名 Keras 模型的指标和损失?

java - ClassCastException :com. google.appengine.tools.development.ApiProxyLocalImpl 无法转换为 com.google.appengine.tools.development.ApiProxyLocal

谷歌存储 : how to check if a bucket exists

google-cloud-storage - 谷歌云存储预算限制

Python:如何将枚举元素用作字符串?

python - 如何使用 whoosh 获取所有 "index data"

python - 从 For 循环接收内存地址

google-cloud-storage - 压缩保存在Google云存储中的文件

python - "NotImplementedError: Use label() to access a node label"