2016-09-17 2 views
2

現在、blobstore.create_upload_urlを使用してフロントエンドで使用するアップロードURLを作成します(Uploading a blobを参照)。 しかし、Googleのクラウドストレージ(GCS)に向けて、ブロブストアの代わりにGCSを使用したいと考えています。現在はblobstore.create_upload_urlを使用していますが、GCSのドキュメントではこれと同等のものは見つかりません。何か不足していますか?フロントエンドからGCSにファイルをアップロードするより良い方法はありますか?あなたは、単純なを見てみることができますUsing the Blobstore API with Google Cloud Storageブロブストア "Create_upload_url"に相当するGCSは何ですか?

blobstore.create_upload_url(
       success_path=webapp2.uri_for('upload'), 
       gs_bucket_name="mybucket/dest/location") 

おかげ ロブ

+0

[GCS File Upload](http:// romanno wicki.readthedocs.io/en/latest/gae/file-upload.html#file-upload)Globeにはblobstore.create_upload_urlを使用することはできますが、ここでの説明は次のとおりです。[Google Cloud StorageでのBlobstore APIの使用](https ://cloud.google.com/appengine/docs/python/blobstore/) – manRo

+0

ありがとう@manRoバケット名を指定すると、ブロブストアがblobstoreではなくgcsに移動する必要があります。おそらく答えに入れて、私はそれを受け入れることができます。 –

+1

バケット名ファイルを提供する場合はGCS – manRo

答えて

3

あなたはgs_bucket_nameblobstore.create_upload_urlにファイルを提供する場合はは、これは公式ドキュメントに記載されており、代わりにブロブストアのGCSに保存されますアップロードアプリケーションの実装をwebapp2で作成

from google.appengine.ext import blobstore 
from google.appengine.ext.webapp import blobstore_handlers 
import webapp2 
import cloudstorage as gcs 


class Upload(blobstore_handlers.BlobstoreUploadHandler): 
    """Upload handler 
    To upload new file you need to follow those steps: 

    1. send GET request to /upload to retrieve upload session URL 
    2. send POST request to URL retrieved in step 1 
    """ 
    def post(self): 
     """Copy uploaded files to provided bucket destination""" 
     fileinfo = self.get_file_infos()[0] 
     uploadpath = fileinfo.gs_object_name[3:] 
     stat = gcs.stat(uploadpath) 

     # remove auto generated filename from upload path 
     destpath = "/".join(stat.filename.split("/")[:-1]) 

     # copy file to desired location with proper filename 
     gcs.copy2(uploadpath, destpath) 
     # remove file from uploadpath 
     gcs.delete(uploadpath) 

    def get(self): 
     """Returns URL to open upload session""" 

     self.response.write(blobstore.create_upload_url(
      success_path=uri_for('upload'), 
      gs_bucket_name="mybucket/subdir/subdir2/filename.ext")) 
+0

にアップロードされますが、GCSにもapiのxmlセクションには表示されません。 https://cloud.google.com/storage/docs/access-control/create-signed-urls-programとhttps://cloud.google.com/storage/docs/xml-api/post-objectをご覧ください。 –

関連する問題