0

私は本当にあなたの助けや助言、手がかりなどを必要としています。私はAndroidとiOS用のアプリケーションを開発しています。これはユーザーが写真とビデオをアップロードできるようにします。私がやろうとしている何Android/iOSからGoogle Cloud Endpointsに画像/動画を送信する

1 - のAndroid/iOS版は私のGoogleクラウドエンドポイントへの画像/動画を送信します。

2 - Google Cloud EndpointはGoogle Cloud Storageに画像/動画をアップロードします。 (Works)

3 - Google Cloud EndpointはGoogle Cloud StorageからservingURLを取得してAndroid/iOSに戻します。 (Works)

4 - Android/iOSは、そのURLで画像/動画をストリームします。

問題は単なる最初のステップです。画像/動画をGoogle Cloud Endpointに送信してください。

私はたくさんのことを読んでいて、検索し、調査していて、それをどうやって行うのか分からなかった。

ご意見はお寄せいただきありがとうございます。私はこの機能を実装する方法についての新しいアイデアを公開しています。君たちありがとう!

- - - - - - - - - - - - - - - - - UPDATE - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

リサーチの後、もっと良い方法を見つけたら、それをAndroid/iOSから直接アップロードすることになりました。私はそれを行う方法を理解しましたが、クライアントがエンドポイントで生成されたurlUploadを使用してファイルをアップロードした後に自動的に呼び出されるようにサーブレットを実装する方法についてはまだまだ悩まされています。

これまでのところ、私がやった:

1 - 私のGoogleのエンドポイントがアップロードするURLを取得するためのクライアントの要求。 - クライアント(アンドロイド/ iOS版)は、このURLを受信して​​、ファイルをアップロード(私はまだそれを実装していませんでした

BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService(); 
UploadOptions uploadOptions = UploadOptions.Builder.withGoogleStorageBucketName(ConstUtil.storage.BUCKET_NAME); 

String uploadUrl = blobstoreService.createUploadUrl("/upload", uploadOptions); 

response.setSimpleString(uploadUrl); 
response.setCode(MWCode.SUCCESS.getCode()); 
response.setMessage(MWCode.SUCCESS.getMessage()); 

return response; 

3: -

2 Googleのエンドポイントは、このコードを使用して、 '/アップロード' URLを生成し、私は多くのきれいな例を見て)

4理解することは非常に簡単になります - コールバック送信、アップロード対象のキー

5としてブロブストアサービス火Googleのエンドポイントを - 私はservingURLを取得するために、ブロブキーを使用します

Google Cloud Endpointsを使用していないチュートリアルや例がすべて表示されたら、手順4を実装する方法についてはわかりませんが、クライアント(Android/iOS)を使用してファイルを配信します。してください、誰も私にパス/リンク/コードや私はそれを実装する方法の手がかりを与えることができますか?

答えて

1

Saiyrが示唆しているように、(エンドポイントを経由せずに)AndroidアプリケーションからCloud Storageに直接アップロードする必要があります。 Uploading image from Android to GCSおよびupload image to google cloud storage with an application androidを参照してください。

バケットとファイル名を知っているので、アップロードされたファイルのURLは簡単に控除できます。次のドキュメントを参照して、使用するURLを決定します(ユーザーが認証されるかどうかによって異なります)。オブジェクトへの読み込みアクセスが許可されています)」https://cloud.google.com/storage/docs/cloud-console#_accessing

+0

よろしくお願いします。ダウンロード用のURLがあり、クライアントからのアップロードがうまくいきます。今では、エンドポイント(サーブレット)にアップロードされたファイルを取得する方法がわかりません。つまり、ユーザーはビデオ/写真をアップロードしました。このファイルを提供するURLを取得できるように、このアップロードされたファイルをサーバー側で入手するにはどうすればよいですか? –

+0

わかりましたら、Cloud Storageにアップロードしたファイルのバケツとファイル名が分かります。この場合、ファイルを提供するURLを取得するのは簡単です。ドキュメントhttps://cloud.google.com/storage/docs/cloud-console#_accessingをご覧ください。ファイルを一般公開する場合は、https://storage.googleapis.com/ /のようになります。これはGoogleで認証する必要はありません。一方、ファイルがユーザー名/パスワードで保護されている場合は、https://console.cloud.google.com/storage/browser/ /を使用する必要があります。ドキュメントを見て、それはクリスタルクリアです! –

+0

私の英語については残念ですが、それは駄目です。ポイントは、私が立ち往生した場所ではないということです。私はこの非常に簡単な例を実装しようとしています:https://medium.com/google-cloud/uploading-to-google-cloud-storage-from-ios-app-e9f4097b516#.fxu3djvzsクライアント(Android/iOS)がメディアをアップロードした後にメソッド "doPost"が呼び出される方法。 –

1

Endpointsフレームワークを使用している場合、これはかなり難しいです。単一の画像の場合、base64でエンコードすることができますが、これはあまり効率的ではありません。クライアントがGCSと直接対話し、アップロードに署名されたURLを使用する方が効果的です。

+0

これは、研究の結果、Android/iOSから直接アップロードする方が気になりました。私はそれを行う方法を考え出しましたが、クライアントがエンドポイントによって生成されたurlUploadを使用してファイルをアップロードした後に自動的に呼び出されるように、サーブレット(エンドポイント)を実装する方法につきました。 質問を更新する予定です。 –

+0

更新された質問をチェックしてください。 :) –

関連する問題