問題タブ [amazon-cloudfront]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - Railsのasset_tagURLの形式を変更するにはどうすればよいですか?
バックグラウンド
私は現在、実際のWebサーバーを指すカスタムオリジンを使用してAmazonCloudFrontで使用する予定のRails3プロジェクトに取り組んでいます。これは、私のWebサーバーがCloudFrontから静的アセットを取得するようにブラウザーに指示することを意味します。CloudFrontにアセットがキャッシュされている場合はそれを返し、そうでない場合はWebサーバーから同じパスを使用して取得し、将来のためにキャッシュします。リクエスト。
問題
Amazon CloudFrontは、アセットを元の場所から再ダウンロードするために独自のキャッシュを無効にする必要があるかどうかを判断するときに、クエリ文字列パラメーターをドロップして無視します。これは明らかに、RailsがURLを生成する方法に問題を引き起こしRAILS_ASSET_ID
ます/assets/path/to/asset.ext?RAILS_ASSET_ID
。デフォルトのアセットURLを使用すると、CloudFrontは古いアセットを最大24時間保持します。
解決?
私がやりたいのは、Rails 3がアセットタグを生成する方法をなんとかオーバーライドして、のようなURLを生成できるようにすることです/assets/RAILS_ASSET_ID/path/to/asset.ext
。WebサーバーがこれらのURLに応答するようにする方法については、すでに解決策があります。RailsにURLを生成させる方法を理解する必要があります。
ノート
- 私
RAILS_ASSET_ID
は最新のgitcommitハッシュのサブ文字列になります。これの設定は、展開プロセス中にcapistranoによって処理されます。デプロイごとにすべてのアセットキャッシュを無効にしても問題ありません。アセット固有のIDは必要ありません - 私はすでにオーバーライドを試みましたが
ActionView::Helpers::AssetTagHelper.rewrite_asset_path
、それは機能していないようで、私が読んだことから、これは信頼されるべきではないプライベートメソッドです。 - 前もって感謝します!
amazon - AmazonCloudFrontの中国では帯域幅が悪いです。助言がありますか?
こんにちは私はSaaSアプリケーションにAmazonCloudFront(ファイルはS3上にあります)を使用していますが、中国での接続が遅いという問題があります。私はこの問題についてあまり多くの情報を見つけていません、誰かがこの種の問題に直面しましたか?
中国のCDNに利用するためにChinaCacheに連絡したことがありますが、まだ返信がありません。
助言がありますか?
ajax - CDNからのスクリプトのAjaxロード(jQueryを使用)が機能していません
私のJavascriptヘビーWebアプリには、タグを使用してソースHTMLにロードされるスクリプトと、jQueryのajaxメソッドを使用して必要に応じてロードするスクリプトがあります。
現在、アプリの静的アセットのほとんどをCDNに再配置しています(AWS Cloudfrontを使用しています)。動的ロードが機能しなくなりました。jQuery Ajax呼び出し:
成功関数をトリガーしますが、コンテンツは空です。
これは、そのようなリクエストがクロスサイトスクリプティングに関するブラウザのセキュリティモデルに違反しているためかどうか疑問に思います。その場合、CDNから動的にスクリプトをロードすることはできますか?ああ...私は現在、クラウドフロントホストにCNAMEエイリアスを使用していません。そうすることでこの問題は解決しますか?
amazon-ec2 - AWS: 単一ドメイン上の Cloudfront と EC2
ec2 から mysite.com/ をホストし、cloudfront から mysite.com/logo.gif をホストすることは可能ですか?
amazon-web-services - s3 バケットを変更し、CloudFront を使用している場合、ファイルは再配布されますか
いくつかのファイルを含む Amazon S3 バケットがあります。CloudFront を使用して配布しました。CloudFront がライブになったら、バケットにファイルを追加する必要があります。CloudFront は新しいファイルを見つけますか? 自動的に配布されますか?
video-streaming - CloudFrontストリーミングへのライブビデオの公開
私はウェブアプリ(複数のユーザーが作成したストリーム)でライブビデオをストリーミングするための最良の方法を研究しています。これまでのところ、AWS CloudFrontを使用してビデオをフラッシュクライアントに配信するのはかなり簡単なようですが、ビデオの公開に関するドキュメントはあまり見つかりませんでした。
理想的には、パブリッシングインターフェイスはJustinTVまたはUstreamに似ており、単純なFlashアプリがWebカメラからビデオをキャプチャしてどこかにストリーミングします。CloudFrontでこれが可能かどうか誰かが知っていますか?もしそうなら、誰かがいくつかのドキュメントやチュートリアルへのリンクを持っていますか?Amazon自身のドキュメントは、既存のビデオファイルのストリーミングのみをカバーしているようです。
ありがとう
caching - Cloudfront を使用している場合、現在の日付を基準にして Expires ヘッダーを設定するにはどうすればよいですか?
私たちは大規模なウェブサイトを開発しており、すべての画像とリソースは Amazon S3 にあります。また、コンテンツをグローバルに配信するために Cloudfront を使用しています。私たちがしたいことは、クライアントの Web ブラウザーにファイルをキャッシュするように指示することです。これは、ファイルを変更すると URL も変更されるためです (Cloudfront は他の場所で 24 時間変更を反映しません)。
現在ETagを使用していますが、リソースが変更されたかどうかを確認するためにクライアントがリクエストを実行する必要があるため、これは最適ではありません。
解決策の 1 つは Expires ヘッダーですが、S3 の Apache 構成で可能なように現在の日付に相対的に設定する方法が見つかりませんでした。また、すべてのコンテンツを定期的に更新することはできません。そのため、Expires ヘッダーをすべてのコンテンツの現在の日付に関連する日付に設定する構成オプションが必要になります。
別の解決策は、Cache-Control: max-age を特定の値に設定することです。これは機能しますか?主要なブラウザで受け入れられますか? これでいくつかのキャッシュアルゴリズムを破棄しますか? YSlow が Cache-Control: max-age ではなく Expires ヘッダーを設定することを推奨するのはなぜですか?
他の推奨事項はありますか?CSS と JS を圧縮し、可能な場合はスプライトを使用し、可能な場合は Expires ヘッダーと ETag を設定します。まもなく、Yahoo Compression Tool と gzipping 出力を使用して画像を圧縮します。
caching - ブラウザがCloudfrontから更新されたファイルを確実にフェッチする方法は何ですか?
クラウドフロントディストリビューションに静的ファイル(css、images、js)ファイルをセットアップし、ファイルのクラウドフロントURLを使用してJSPファイルでそれらを参照しています。cache-control値を最大1か月に設定しました。
キャッシュの有効期限が切れる前にcss/jsファイルを変更し、元のオブジェクトを無効にした後でクラウドフロントディストリビューションのファイルを更新するとします。
ブラウザが更新されたファイルをフェッチすることを確認する方法は何ですか?
javascript - AmazonS3用にJS/CSSを組み合わせる方法は?
通常のVPSサイトでは、ミニファイを使用して複数のCSS / JSファイルを圧縮および結合するため、サイトは1つまたは2つのHTTPリクエストのみを使用します。私が現在取り組んでいるサイトでは、CSS /JSファイルがAmazonS3でホストされ、AmazonCloudFrontを介して提供されています。明らかに、ミニファイはPHP5アプリであり、AWSでは実行できません。
アップロードする前にスクリプトを簡単に圧縮できますが、AWS S3でスクリプトを組み合わせてHTTPリクエストを減らすための最良の方法は何ですか?
python - Amazon CloudFront プライベート ディストリビューションでアクセスが拒否される
プライベート コンテンツ配信用に CloudFront をセットアップしようとしていますが、生成された URL をたどると Access Denied エラーが発生し続けます。明確にするために、私はすでに CloudFront ディストリビューションを作成し、それをプライベートとしてマークし、すべての関連ファイルへの読み取り許可を与えられたオリジン アクセス ID を作成しました。
URL に署名するために Amazon Web ページに示されている例を使用して URL を生成するための簡単な Python スクリプトを作成し、以下のテキストを含めます。
私がやっていることで明らかに間違っていることを誰かが見ることができますか? 秘密鍵を使用してダイジェストに署名すると、公開鍵で検証できることを確認しました (base64 と変換ステップを介してフィードする前に検証を行う場合)。
ありがとう。