3

次の判断の参考​​にさせていただきますので、よろしくお願いいたします。

私の要件:

  • 共有サーバーでホストされているサイトがあり、ユーザーにコンテンツを提供します。約 60 GB のコンテンツ (それぞれ 30 MB の約 2000 ファイル。ユーザーは一度に 20 ファイルしかアクセスできません)、私は毎月約 100 GB の帯域幅使用量を計算します。

  • ユーザーがコンテンツに登録すると、ユーザーがダウンロードできるリンクにアクセスできるようになります。しかし、有効期限を延長する可能性を考慮して、リンクの有効期限を 7 日間にしたいと考えています。

  • ディスク容量と帯域幅を考えると、Amazon S3 や Rackspace Cloud ファイルなどのサービスが必要になると思います (または、代替手段はありますか?)

  • 有効期限を管理するために、有効期限が切れるリンクを何らかの方法で取得する予定です (Rackspace ではなく、S3 にその機能があると思います) または、データベースの有効期限を制御し、クラウド上の 200 個のファイルすべての名前を毎日変更するバッチ プロセスを使用し、私のデータベースで(ユーザーが直接リンクをコピーした場合、翌日には機能しません。私のウェブページだけが更新されたリンクを持っています)。プログラミングにはPHPが使われています。

それで、あなたはどう思いますか?クラウド ファイル ホスティングは進むべき道ですか? どれ?リンクを管理することは理にかなっていますか、それともプログラミングを介してそれを行うのは難しすぎますか (コマンドをクラウドサーバーに送信します...)

編集: 一部のホスト会社は、共有プランで無制限のスペースと帯域幅を提供しています..サポート スタッフに尋ねたところ、「無制限」の取引を本当に尊重しているとのことでした. したがって、1 か月あたり 100 GB の転送は問題ありません。注意すべきことは、CPU 使用率だけです。したがって、共有ホスティングに移行することは、選択できるもう1つの選択肢です..

フォローアップ:これをさらに掘り下げてみると、UnlimitedプランのTOSには、主にマルチメディアファイルをホストするためにスペースを使用することは許可されていないと書かれていることがわかりました. そこで、Amazon s3 と Tom Andersen が提供するソリューションを使用することにしました。

入力していただきありがとうございます。

4

3 に答える 3

2

個人的には、必ずしもクラウドベースのソリューションに移行する必要があるとは思いません。少し費用がかかるかもしれません。代わりに、専用サーバーを取得するだけです。頭に浮かぶ 1 つのプロバイダーは、いくつかの最低レベルのプランで 3,000 GB/月の帯域幅を提供します。これは 10M ビットのアップリンクです。$10/月で 1Gbit を $20/月で 100Mbps にアップグレードできます。名前については言及しませんが、専用サーバーを検索して、好みのサーバーを見つけることができます。

ファイルの期限切れについては、データベースに支えられた PHP で実装するだけです。ファイルを移動したり、Web からアクセスできないディレクトリにすべてのファイルを保存したり、PHP スクリプトを使用してリンクが有効かどうかを判断したりする必要はありません。ブラウザ。リンクが無効な場合は、代わりにエラー メッセージを表示できます。これは非常に単純な概念であり、それを行うための事前に作成されたスクリプトが多数あると思いますが、ニーズによっては、自分で行うのはそれほど難しくありません。

クラウド ホスティングには利点がありますが、現時点では費用がかかると思います。負荷を地理的に分散させようとしていない場合や、何千もの同時ユーザーをサポートする予定がなく、クラウドの弾力性が必要な場合は、代わりに専用サーバーを使用できます.

それが役立つことを願っています。

于 2012-02-03T05:51:16.513 に答える
2

S3 について話すことはできませんが、Rackspace Cloud のファイルとサーバーを使用しています。

着信帯域幅に料金を支払わないという点で優れているため、アップロードは非常に安価です.

私は次のようにします:

  1. 必要なすべてのファイルを「プライベート」コンテナにアップロードします
  2. CDN が有効なパブリック コンテナーを作成する
  3. http://c3214146.r65.ce3.rackcdn.comのような特別な URL が表示されます。
  4. ドメインの独自の CNAME DNS レコードを、http: //cdn.yourdomain.comのように指定します。
  5. ユーザーがファイルを要求した場合、COPY API 操作長いランダム ファイル名で使用して、プライベート コンテナーからパブリック コンテナーへのサーバー側のコピーを実行します。
  6. アプリの mysql DB にファイル名を保存します
  7. ファイルの有効期限が切れたら、DELETE api 操作を使用してから、PURGE api 操作を使用して CDN からファイルを取得し、最後に mysql テーブルからレコードを削除します。

PURGE コマンドを使用すると.. 100% の場合は機能せず、ファイルが 1 日余分に残る可能性があると聞きました.. また、緊急用にのみ使用するように予約するようにドキュメントに記載されています。

編集: 1 日あたり 25 パージの制限があると聞いたところです。

ただし、個人的には、オブジェクトに対して削除を使用したところ、すぐに CDN から削除されたことがわかりました。要約すると、最悪のケースは、ファイルが削除後 24 時間、一部の CDN ノードで引き続きアクセス可能になることです。

編集: CDN ノードの TTL (キャッシュ時間) を変更できます..デフォルトは 72 時間なので、それよりも低い値に設定すると料金がかかる場合があります..しかし、CDN の利点を失うほど低くはありません。

私が CDN で見つけた利点は次のとおりです。

  1. 米国のサーバーから遠く離れたエンド ユーザーにコンテンツをプッシュし、超高速のダウンロード時間を提供します。
  2. 非常に人気のあるファイルがある場合.. 1000 人がそれをダウンロードしようとし始めても、サイトが削除されることはありません.. 彼らはすべて、最も近い CDN ノードにプッシュされたコピーを取得します.
于 2012-02-06T03:23:24.397 に答える
1

S3 上のファイルの名前を毎日変更する必要はありません。それらを非公開 (デフォルト) にして、承認された人に 1 日または 1 週間の時間制限のある URL を配布するだけです。

ユーザーがファイルを再ダウンロードするために再ログインする必要があるように、リンクを 20 分間だけ有効にすることを検討します。その後、彼らはあなたから取得したリンクを共有することさえできません.

于 2012-02-03T20:30:11.997 に答える