2016-11-10 14 views
1

GAEにアプリケーションをデプロイしようとしています。
私のPythonスクリプトは、urllib.requestパッケージからurlretrieve機能を使用して画像をダウンロード:PythonがGoogle Cloud Storageにファイルを送信する

urlretrieve(img_url,os.path.join(os.getcwd(),img_dir,str(img_name) + '.jpg')) 

それは(ローカルの画像を保存する)限り、私はローカルでスクリプトを実行していて、正常に動作しますが、私は見つけることができませんGCSと同じことをする代わりの方法です。

誰かがこれを達成する方法に向けて私を指摘することができたら、私は感謝します。

ありがとうございます!

+0

どのように機能しないのですか?あなたはエラーが発生しますか?どのエラー? –

答えて

2

documentationは、Cloud Storageバケットの読み書きに2つの簡単な方法を使用する方法を示しています。

urlretrieveの代わりに、画像のコンテンツを取得し、その応答をCloud Storageのファイルに書き込むだけです。

image_binary = urllib.urlopen(img_url).read() 

そして、あなたはわずかにクラウドストレージのサンプルを修正言う:

import cloudstorage as gcs 

def create_file(self, filename, contents, mime_type='image/jpeg'): 

    write_retry_params = gcs.RetryParams(backoff_factor=1.1) 
    gcs_file = gcs.open(filename, 
         'w', 
         content_type=mime_type, 
         retry_params=write_retry_params) 
    gcs_file.write(contents) 
    gcs_file.close() 

    # Maybe do other too stuff like make the file publicly 
    # accessible 

し、ファイルを書き込むためにそれを呼び出します。

+0

期待通りに動作しました:) PS:遅く返事を申し訳ありません –

関連する問題