2010-12-31 21 views
1

amazon s3 serverに画像をアップロードし、そこから提供している最中にベストプラクティスを探しています。php画像を変換してamazon s3にアップロード

イメージには4つの異なるサイズが必要です。画像をアップロードした直後に、4つの異なる幅と高さで画像とスケールを変換します。そして、公式のphp apiを使ってamazon s3に送信します。

// ... 
// image conversions, bucket setting, s3 initialization etc. 

$sizes= array("", "48", "64", "128"); 

foreach($sizes as $size) { 
    $filename = $upload_path.$dest_file.$size.$ext; 
    $s3->batch()->create_object($bucket, , array(
       'fileUpload' => $filename, 
       'acl' => AmazonS3::ACL_PUBLIC, 
      )); 
} 

しかし、1Mイメージの場合、クライアントは30秒まで待つことがあり、非常に長い時間です。

イメージをすぐにS3に送信する代わりに、ジョブキューに追加する方がよい場合があります。しかし、ユーザーはアップロードした画像を直ちに見るべきです。

答えて

0

ファイルをキューに入れることで、データベースを作成してから、cronジョブを実行するか、常に実行しているPHPスクリプトを実行するだけで簡単に達成できます。 ユーザーが画像を即座に見るようにしたい場合は、S3で即座に表示する必要がありますか?

+0

私たちのウェブサーバは機能することができますが、PHPコードではもっと複雑になる必要があります。画像のアップロード状況はdbに保存されます。それは当分の間、唯一の解決策と思われる。 – faraklit

+0

さて、サーバー上のイメージを処理し、キューデータベースに追加し、それをユーザーに表示してから、S3にアップロードするバックグラウンドタスクを実行しますか? – Ben

+0

はい、まだアップロードされているかどうかを確認し、それに応じてアドレスを設定するには、画像テーブルのフィールドを追加する必要があります。 – faraklit

関連する問題