プロジェクト

全般

プロフィール

Bug(バグ) #3412

未完了

画像ストレージ設定を Filesystem にした時に設定が存在しない場合のエラーログとディレクトリが存在しない場合のエラーログが同じなため問題が特定しにくい

Yuya Watanabe さんが約11年前に追加. ほぼ5年前に更新.

ステータス:
New(新規)
優先度:
Low(低め)
担当者:
-
対象バージョン:
開始日:
2013-09-27
期日:
進捗率:

0%

予定工数:
3.6 で発生するか:
Unknown (未調査)
3.8 で発生するか:
Unknown (未調査)

説明

概要

画像ストレージ設定を Filesystem にした時に設定が存在しない場合のエラーログとディレクトリが存在しない場合のエラーログが同じなため問題が特定しにくい.

OpenPNE.yml で例えば下記のような設定を行い,master_dir に設定したディレクトリが存在しない場合でもエラーログが master_dir を設定してない場合と同じものが出力される.これは設定がされていないという問題と誤認するため問題解決への時間が無駄にかかってしまう.

image_storage: Filesystem
image_storage_filesystem_master_dir: '/tmp/openpne_img'

実際にディレクトリが存在してないかどうかを確認.

$ ls /tmp/openpne_img
ls: cannot access /tmp/openpne_img: No such file or directory

エラーログ

"op_image_storage_filesystem_master_dir" must be configured in OpenPNE.yml

原因

sfImageStorageFilesystem クラスで設定を受け取った後に直接 is_dir() を用いているため設定が存在する場合か is_dir() が false となるかという点について区別がされていない.

plugins/sfImageHandlerPlugin/lib/image/storage/sfImageStorageFilesystem.class.php
 20   public function getPathToImage($filename)
 21   {
 22     $baseDir = sfConfig::get('op_image_storage_filesystem_master_dir');
 23     if (!is_dir($baseDir))
 24     {
 25       throw new RuntimeException('"op_image_storage_filesystem_master_dir" must be configured in OpenPNE.yml');
 26     }
 27     $path = $baseDir.DIRECTORY_SEPARATOR.str_replace(DIRECTORY_SEPARATOR, '-', $filename);
 28 
 29     return $path;
 30   } 

他の形式にエクスポート: Atom PDF