如何从Google App Engine中读取Google云端存储文件

时间:2018-02-12 04:44:08

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

如何打开存储在Google云端存储中的文件(来自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>

view.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

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

另外,如何从我的计算机上打开它(在运行&#39; gcloud app deploy&#39;命令之前)?

1 个答案:

答案 0 :(得分:3)

我有一个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()