2011-07-01 19 views
5

現在、Java APIでS3を使用してオブジェクトとそのコンテンツを取得しています。私はAWSコンソールを使用してCloudfrontディストリビューションを作成しました。私はS3バケットを自分のオブジェクトと共にバケットの起点として設定しました。しかし、私はダウンロードのパフォーマンスが改善されていないことを気付きました。コンソールウィンドウで、URLがs3を参照していることに気づきました。Amazon S3とCloudfront with Java API

INFO:送信リクエスト:GET https://mybucket.s3.amazonaws.com /picture.jpgヘッダー:(範囲:バイト= 5001- 1049479、コンテンツタイプ:application/x-www-form-urlencodedで;のcharset = UTF-8)

CloudFrontのためのスタートガイドに、URLがなければならないのに対し:

http://(domain名)/画像.jpg

ここで、(ドメイン名)はCloudfrontディストリビューションに固有のものです。だからJava APIは依然としてS3からクラウドフロントではなくファイルを取得しています

クラウドフロント経由でファイルをダウンロードするにはJava API for S3を使用していますか?そうでなければ、私のJavaプログラムでクラウドフロント経由でオブジェクトを取得するために使うべき最良のアプローチは何ですか?私はまだこのようなものに少し新しいです、どんな助けも大いに感謝します!

答えて

1

S3向けのJAVA APIは、Cloudfrontとの対話には使用できません。

コンテンツをクラウドフロントディストリビューションからダウンロードする場合は、独自のHTTPコード(単純なはずです)を記述する必要があります。ブラウザでhttp://(cloudフロントドメイン名/picture.jpgを使用して、ダウンロード速度を最初に確認することもできます。

0
URL url = new URL(your_cloudfront_url); 
InputStream in = url.openStream(); 

しかし、S3の変更が有効になるには24時間以上かかることがあります。 ストリームを開くことができない場合、別の方法はgetObject(bucketName, key)メソッドを使用することです。