web-dev-qa-db-ja.com

Pythonを使用してGoogle Cloud Storageバケットサブディレクトリにファイルをアップロードします

python関数を実装してGoogle Cloud Storageバケットにファイルをアップロードしましたが、バケット内のサブディレクトリ(フォルダ)に追加したいと思っています。バケット名コードはフォルダーを見つけることができません。

ありがとう!

def upload_blob(bucket_name, source_file_name, destination_blob_name):
  """Uploads a file to the bucket."""
  storage_client = storage.Client()
  bucket = storage_client.get_bucket(bucket_name +"/folderName") #I tried to add my folder here
  blob = bucket.blob(destination_blob_name)

  blob.upload_from_filename(source_file_name)

  print('File {} uploaded to {}.'.format(
    source_file_name,
    destination_blob_name))
12
seanie_oc

「フォルダ」を間違った場所に追加しています。 Google Cloud Storageには実際のフォルダーやディレクトリはありません( Naming セクションの最後の箇条書きを参照)。

シミュレートされたディレクトリは、実際には、名前に接頭辞が付いたオブジェクトです。たとえば、現在持っているものではなく、次のようにします。

  • バケット=バケット/フォルダ名
  • オブジェクト=オブジェクト名

代わりに以下が必要です。

  • バケット=バケット
  • オブジェクト= folderName/objectname

あなたのコードの場合、これはうまくいくと思います:

bucket = storage_client.get_bucket(bucket_name)
blob = bucket.blob("folderName/" + destination_blob_name)
blob.upload_from_filename(source_file_name)
20
jterrace