6

これは以前に尋ねられたことは知っていますが、実際には明確な答えはありません。私の問題は、GAE 用のファイル アップロード スクリプトを作成した後、約 1 個までしかファイルを保存できないことがわかったことです。データ ストアに 1 MB。課金を有効にすれば 1MB の制限は過去のものになるということを教えていただければ、ここで止めさせていただきますが、私はそれを疑っています。

ファイルごとに最大 20 MB をアップロードできる必要があるため、Amazon の S3 を使用できるのではないかと考えました。これを達成する方法についてのアイデアはありますか?

GAE + Ec2 と S3 の組み合わせを使用するように言われましたが、これがどのように機能するかわかりません。

ありがとう、マックス

4

5 に答える 5

13

Amazon S3 のドキュメントから:

  1. ユーザーが Web ブラウザーを開き、Web ページにアクセスします。

  2. Web ページには、ユーザーがコンテンツを Amazon S3 にアップロードするために必要なすべての情報を含む HTTP フォームが含まれています。

  3. ユーザーはコンテンツを直接 Amazon S3 にアップロードします。

GAE が Web ページを作成して提供する、迅速な操作です。ユーザーは S3 にアップロードします。これは時間のかかる操作ですが、それはユーザーのブラウザーと Amazon の間で行われます。GAEは関係ありません。

S3 プロトコルの一部はsuccess_action_redirectです。これにより、アップロードが成功した場合にブラウザをどこに向けるべきかを S3 に伝えることができます。そのリダイレクトは GAE にすることができます。

于 2009-06-09T23:57:15.897 に答える
3

Google App Engine と EC2 は競合相手です。それらは同じことを行いますが、GAE は厳密な言語制限でアプリを実行するための環境を提供しますが、EC2 はアプリケーションをホストする仮想マシン ( VMWare と考えてください) を提供します。

一方、S3 は raw ストレージ API です。SOAP または REST API を使用してアクセスできます。GAE を使い続けたい場合は、Amazon S3 Python ライブラリを使用して、Python から S3 への REST 呼び出しを行うことができます。

もちろん、S3 の使用料を支払う必要があります。彼らの請求がどれほどきめ細かいものであるかは驚くべきことです。始めたとき、私は文字通り月に 4 セント請求されました。

于 2009-06-09T22:57:34.130 に答える
2

今後の参考のために、Google は大きなファイルのアップロード (最大 50 MB) のサポートを追加しました。この新機能はBlobstore APIの一部としてリリースされ、ここで説明されています。

于 2010-01-05T06:51:35.133 に答える
1

Thomas L Holaday の答えが正解だと思います。とにかく、念のため、Amazon Web Services SDK for App Engine (Java) へのリンクを示します。これを使用して、たとえば App Engine から Amazon S3 にファイルをアップロードできます。(編集:ああ、気づいた - S3を除く

エイドリアン ペトレスク脚本の作品。彼のウェブサイトから:

[これは] Google App Engine の内部から実行される、Amazon Web Services SDK for Java のバージョンです。これは、AWS が提供する JAR を GAE の WAR に直接含めただけでは機能しません。GAE のセキュリティ モデルでは、HTTP 接続の確立に必要なソケットと低レベルのネットワーク プリミティブを Apache Commons HTTP クライアントが作成できないためです。代わりに、Google は、URLFetch ユーティリティを介してすべての接続を確立することを要求しています

于 2010-08-18T18:41:14.573 に答える
0

一部の Google App Engine + S3 リンク:

以前の関連記事... 10MBの制限.

このリンクは、小さなファイルのアップロードを示しています。大規模なアップロードの例はまだ見つかりません...

このリンクは別のアプローチを示しています (既知の問題の修正付き) 。

于 2009-06-09T23:23:15.810 に答える