flaskでGAEからGSCにファイルをアップロードするまで

GAE standard environmentからGCSへファイルをアップロードしたい。 下記にあるようにGAE standard eivironmentではclinet libraryが異なるので注意が必要。

pip install --upgrade google-cloud-storage

認証を通すためにsecret.jsonへ環境変数を設定しておく。

export GOOGLE_APPLICATION_CREDENTIALS="/path/to/file/[FILE_NAME].json"
from flask import request
from google.cloud import storage

@app.route('/upload', method=['POST'])
def upload():

  if 'file' not in request.files:
    return 'No file uploaded.', 400
    
  uploaded_file = request.files.get('file')
  client = storage.Client()
  bucket = client.get_bucket('bucket-id-here')
  blob = bucket.blob('blob-name')
  blob.upload_from_file(uploaded_file)
 ```

## 参考

[https://pypi.org/project/google-cloud-storage/:title]
[https://googleapis.github.io/google-cloud-python/latest/storage/blobs.html#google.cloud.storage.blob.Blob.upload_from_file:title]