3

Google Cloud Storageバケットにアップロードされたファイルのリストを取得するPythonスクリプトがあり、そのデータを文字列として取得しようとします。フォルダ内のGoogleクラウドストレージからファイルをダウンロードする

コードは単純です:

folder/innerfolder/file.jpg 

file = open(base_dir + "/" + path, 'wb') 
data = Blob(path, bucket).download_as_string() 
file.write(data) 

私の問題は、私がアップロードしたデータは、バケット内のフォルダ内に格納されるので、パスのようなものになるだろうということですgoogleライブラリはファイルをダウンロードしようとすると、GETリクエストの形式で取得し、上記のパスを次のように変換します。

この方法でファイルをダウンロード/ダウンロードする方法はありますか?乾杯。

答えて

3

はい - これはPython storage client libraryで行うことができます。

だけpip install --upgrade google-cloud-storageでそれをインストールし、次のコードを使用します。また、.download_as_string()を使用することはできますが、ファイルに直接ダウンロードとにかくファイルに書いているように簡単かもしれ

# Initialise a client 
storage_client = storage.Client("[Your project name here]") 
# Create a bucket object for our bucket 
bucket = storage_client.get_bucket(bucket_name) 
# Create a blob object from the filepath 
blob = bucket.blob("folder_one/foldertwo/filename.extension") 
# Download the file to a destination 
blob.download_to_filename(destination_file_name) 

を。

ファイルパスは、の後のからのパスであるため、バケット名はウェブインターフェイス上のパスに正確に並ばないことに注意してください。

関連する問題