当前位置: 首页 > 知识库问答 >
问题:

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

秦锐
2023-03-14
runtime: python
env: flex
entrypoint: gunicorn -b :$PORT view:app
runtime_config:
  python_version: 3.5
env_variables:
    CLOUD_STORAGE_BUCKET: <project-xxxx>
...
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

提前谢谢你。我在文件中找不到任何相关的东西。它提供了关于如何创建bucket、如何上传、如何下载、如何授予权限的信息,但没有关于如何读取它的信息。

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

共有1个答案

司寇高峯
2023-03-14
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()
 类似资料:
  • 我正在使用Spring引导连接到谷歌云存储。 我能够连接到一个文件,并从谷歌云存储桶中读取内容。 但是我不能得到谷歌云存储桶中所有文件的列表。 请帮帮我。 这很有效 这不工作。 有什么原因吗?

  • 我有一个将JSON消息从PubSub(未绑定的PCollection)流到Google云存储的管道。每个文件应该包含多个JSON对象,每行一个。 谢谢

  • 当我试图从Google Cloud Storage(App Engine、Python和Standard Env)中读取文件内容(纯文本)时,我会得到以下跟踪: 虽然设置了“公开共享”,但我在默认的bucket中工作(根据我的理解,应用程序应该具有完全的权限),并且我能够将内容写入/上传到相同的文件中。

  • 假设gcs中的文件以以下格式存储:-.avro。尝试在google dataflow作业中使用读取文件,使用apache Beam的fileio.matchall库读取基于时间戳间隔的文件。例如,gcs中的文件: 现在我们要获取所有大于时间戳20200101000000直到当前时间戳的文件,我可以使用什么文件模式?

  • 问题内容: 我需要在存储过程中读入由SSIS包创建的日志文件。 有什么好方法吗? 我尝试使用此代码,但将文件内容显示为乱码。有没有解决的编码问题?有没有更简单的方法? 问题答案: 您是否尝试过将笔直插入?例如:

  • 使用Boto3,python脚本从S3桶中下载文件以读取它们,并将下载文件的内容写入名为的文件。 我的问题是,一旦脚本使用AWS Lambda函数,它将如何以相同的方式工作?