Python 将运行在Google Compute Engine VM上的docker映像中的文件复制到Google存储桶
我正在docker中运行一个Python 3.6应用程序,希望将输出文件直接存储在GCS存储桶中。在docker图像中,我所做的以下工作听起来很明显: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映像中安装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还是其他什么?谷歌计算引擎请不要将你的答案添加到问题本身。你可以把它作为答案发布,这确实很简单-谢谢。我在编辑中包含了代码