Python 将运行在Google Compute Engine VM上的docker映像中的文件复制到Google存储桶

Python 将运行在Google Compute Engine VM上的docker映像中的文件复制到Google存储桶,python,python-3.x,google-cloud-platform,google-cloud-storage,gcp,Python,Python 3.x,Google Cloud Platform,Google Cloud Storage,Gcp,我正在docker中运行一个Python 3.6应用程序,希望将输出文件直接存储在GCS存储桶中。在docker图像中,我所做的以下工作听起来很明显: 在docker映像中安装gcloud 运行应用程序 切换到2.7虚拟环境,因为gcloud需要这样做 使用gcloud compute scp将文件复制到存储桶 但是,如何在不切换到其他venv的情况下复制文件?您可以从Python应用程序或第二个Python脚本将文件存储到GCS,这非常简单-解决方案-创建文件gcpupload.py fr

我正在docker中运行一个Python 3.6应用程序,希望将输出文件直接存储在GCS存储桶中。在docker图像中,我所做的以下工作听起来很明显:

  • 在docker映像中安装gcloud
  • 运行应用程序
  • 切换到2.7虚拟环境,因为gcloud需要这样做
  • 使用
    gcloud compute scp
    将文件复制到存储桶

但是,如何在不切换到其他venv的情况下复制文件?

您可以从Python应用程序或第二个Python脚本将文件存储到GCS,这非常简单-

解决方案-创建文件
gcpupload.py

from google.cloud import storage

def main():
    client = storage.Client()
    bucket = client.get_bucket('my_bucket')
    blob = bucket.blob('myfile.txt')
    blob.upload_from_filename(filename='/path/myfile.txt')

if __name__ == "__main__":
    main()
运行脚本:

#!/bin/sh
# Need to create the api keys file through google cloud console
# API's and services -> credentials -> service account key
export GOOGLE_APPLICATION_CREDENTIALS=google-api-keys.json
python gcpupload.py 

你所说的GCP虚拟机是指GCE、GAE还是其他什么?谷歌计算引擎请不要将你的答案添加到问题本身。你可以把它作为答案发布,这确实很简单-谢谢。我在编辑中包含了代码