0

画像ファイルへの何千ものリンクを一覧表示する Web ページがあります。現在、これを処理する方法は、画像の名前と画像ファイルへのリンクを手動で編集する非常に大きな HTML ファイルを使用することです。画像がうまく管理されていないため、リンクの多くが壊れていたり、名前が間違っていたりすることがよくあります。

HTML ファイルの数千行のうちの 1 行の例を次に示します。

    <h4>XL Green Shirt<h4>
<h5>SKU 158f15 </h5>
    [<a href="http://website.com/images/products/TIFF/158f15.tif" target="_blank">TIFF</a>] 
    [<a href="http://website.com/images/products/158f15.jpg" target="_blank">JPEG</a>]
    [<a href="http://website.com/images/products/PNG/158f15.png" target="_blank">PNG</a>]
    <br />

データベース内の画像に関する製品情報を持っているので、私の解決策は、データベース内の各製品番号を反復処理するページを PHP で記述し、同じ ID を持つファイルが存在するかどうかを確認し、適切なリンクを表示して、情報。

製品 ID がファイル名と同じであるため、PHP 関数 file_exists() を使用してこれを行い、ローカル マシンで正常に動作しました。問題は、すべての画像が AmazonS3 でホストされているため、この関数を S3 に対して何千回も実行すると、常にリクエストがタイムアウトすることです。同様の PHP 関数を試し、URL に ping を実行して 200 または 404 応答をテストしましたが、すべてタイムアウトしました。

リモート URL 上のファイルの存在を確認し、リソースをほとんど消費しないソリューションはありますか? または、この問題に対処できるより斬新な方法はありますか?

4

1 に答える 1

1

ページの読み込みごとに何千ものファイルの存在をチェックしようとするよりも、レコードをデータベースに配置するときにファイルの存在を強制する方がよいと思います。

s3fsそうは言っても、ファイルの存在を確認するローカルストレージキャッシュディレクトリを使用する代替ソリューションが考えられます。これは、S3 ストレージを直接チェックするよりもはるかに高速です。s3fsまた、新しいファイルを S3 ストレージに書き込む便利な方法も提供します。

于 2012-09-12T18:07:13.020 に答える