アプリケーションでは、ブロブストアとクラウドストレージの両方にファイルをアップロードしています。私はこれでアップロードのリンクを生成することによって、これをやっているクラウドストレージとBlobstoreに保存されているファイルのファイル名を取得する方法は?
:
upload_url = blobstore.create_upload_url('/upload', gs_bucket_name=app_identity.get_default_gcs_bucket_name())
ファイルは、両方のブロブストアとクラウドストレージに保存されている、と私はブロブストアから必要なファイルを取得するために、GQLクエリを実行することができます。しかし、私はクラウドストレージでファイル名を取得する方法を見つけることができません。
ファイルをクラウドストレージにアップロードすると、自動的に長いファイル名が割り当てられます。
私は、コマンドを見つけたが、私はこれを使用するかどうかはわかりません。私が試したときhttps://cloud.google.com/appengine/docs/standard/python/refdocs/google.appengine.ext.blobstore.blobstore#google.appengine.ext.blobstore.blobstore.BlobInfo
を:
cloud_store = []
for upload in uploads:
gcs_link = blobstore.BlobInfo(db.get(upload)).gs_object_name
cloud_store.append(gcs_link)
ここuploads
店がblobstore.BlobReferenceProperty()
を持っている種類に行っGQLクエリの結果プロパティ。
BadArgumentError: Expected an instance or iterable of (<type 'basestring'>, <class 'google.appengine.api.datastore.Entity'>, <class 'google.appengine.api.datastore_types.Key'>); received <models.PhotoAlbum object at 0x00000000054CD7B8> (a PhotoAlbum).
私が試した:uploads
以来
TypeError: Must provide Entity or BlobKey
それは私にエラーを与える: 'TypeError:エンティティまたはBlobKeyを提供する必要があります。しかし、私は解決策を見つけました: 'gcs_link = blobstore.BlobInfo(upload.blob_key.key()).gs_object_name' – Beginner