Why do I sometimes get http errors when uploading images in bulk? Can it be improved?

画像の一括アップロード時に時々httpエラーが出るのは?改善できる?

公開日: 使い方など
Knowledge Base トラブル 対処

「時々」っていうのがやっかいな案件です。私が遭遇したのはバルク(一括)で画像をアップロードしたときのこと。20枚程の画像をアップロードしていると、【アップロード中】→【処理中】→【完了】のように表示が変わり、次の画像のアップロードが始まる・・という流れなのですが、これが時々アップロード100%のまま次の画像のアップロード処理に入ってしまうんです。

実はこれ、以前に知り合いからなんだかおかしい・・と言われていたことでした。

時々処理が転ぶって??いやいやそんなことは・・・みたいに考えて放置していましたけど、今回は自身の目で確認。ちょっとびっくりしました。

今回はこんな感じで「時々」画像アップロード時に処理が途中でスキップされ、最終的にhttpエラーとなる現象について、原因と今の環境でできる対策を検証しつつ紹介します。

結論 サーバーのプラン見直しが最善の策!?

レンタルサーバーは当然のごとくサーバー用のコンピューターで動いています。

レンタルサーバーを選ぶ際に気にするのはサーバーの容量。〇〇GB(ギガバイト)という数字ばかりに目が行きがちですね。でもコンピュータなのですからご自身のパソコンと同じく

  1. どんなCPUが搭載されているのか?
  2. どの位のメモリが積まれているのか?

というのも気にするべき内容。しかしなかなか公開しているサーバーも少ないですからそこまで見分けるのは難しいですね。

私の場合、カラフルボックスサーバーなのであらかじめ公表されているのも確認して契約したのですが、今回のような転びが発生しました。

結論としてバルクアップロード時にメモリがいっぱいになり、CPUが困り始め・・・で時折転ぶという現象が発生するようです。エラーログやメモリ・CPUの履歴を見てもhttpエラーが出たところ辺りでレッドゾーンになってました(笑)。

まあ、プランが最低のものなので仕方ない言えば仕方ないですけど・・・解消するには上位プランにするしかないという結論に達しました。もしも同様の現象が他のサーバーでもあるようならログを見てみてくださいね。

そうはいっても何とかうまく・・・ということでここから本題の原因と対策を紹介します。

そもそもアップロードする画像が大きすぎる

我が家でも最近デジタル一眼レフなるカメラを購入し、我が家の猫の写真などをどんどん撮影してます。興味のある方は

をご覧くださいね。

デジタル一眼レフで撮影した画像のファイルサイズはパソコンへ転送した段階で4~6メガバイト位あるんです。さすがスマホの画像とは違ってビッグサイズ!!ですね。

これをそのままアップロードすると・・・PHPとWordpressの許容されるサイズであればアップロード自体はできます。でもここからサーバーが(Wordpressが)行うのはサムネイルや大・中サイズなど複数の画像を生成します(これは後に表示を速くするために自動で生成されるものです)。

つまりビッグな画像からたくさんの画像を作っていくというプロセスがサーバーに負荷を与えて「もうできましぇーーん!」となったものが時々転ぶということになるようです。

この場合の対策としては

  1. 1枚ずつ処理完了を確認しながらアップロードする
  2. 画像サイズをあらかじめ縮小してからアップロードする

のいずれかになります。

画像圧縮プラグインがさらにサーバーを苦しめる!?

よく使われる画像圧縮系のプラグイン。ビッグな画像をアップロードしても勝手に圧縮してくれるからそのままでいいや!!で今までアップロードしてました。スマホなどで撮影したサイズの小さい画像の場合はそれでも良かったのですが、前述した一眼レフの画像となると・・・ということで、これも処理が遅延し、負荷がかかり・・・でエラーとなるようです。

画像圧縮プラグインの設定でアップロードと同時に圧縮する/しないという選択ができるものであれば、「しない」を選択することで処理プロセスが少なくなり、時々・・の頻度が下がりますから試してみてください。

そうでなければ画像アップロードの度にプラグインを停止して・・・なんてのは面倒なので圧縮する/しないが選択できるプラグインを紹介しておきます。

他サイズの画像生成処理を変更する

画像アップロード時のhttpエラーについては本当にたくさんのサイトで紹介されていてどれもコピペ?と思われるくらい同じ内容。そんな中で唯一あったのが

というページでした。

このページでは原因やこの対策によってなぜ??という部分まで言及はされていませんでしたが、発生する原因については前述した通りかと思います。

で、このページに掲載されている

/*******************************************************************************
* switch image library
*******************************************************************************/
add_filter('wp_image_editors', 'switchImageLib');
function switchImageLib() {
	return array('WP_Image_Editor_GD', 'WP_Image_Editor_Imagick');
}
【注意】コードをコピーして使用する前に必ずお読みください

この記事内にコードが記載されている場合、コードはそのままコピー(いわゆるコピペ)してお使いいただいても構いませんが、以下の件にご留意ください。

使用については自己責任でお願いします

コードの確認は私の管理するサイト、またはテスト環境で問題が起こらなかったものですので、お使いの環境での動作等を保証するものではありません。

万が一このコードを使用してサイトに重篤なトラブルが生じても当サイト、当サイト管理者は一切責任を負いません

コードの変換エラーなどにより動作しない場合、更新エラーが出る場合があります

コードをそのままコピーしても問題なく使えるよう文字列変換を行った上で掲載しておりますが、希に変換できていない場合があり、コードエラーとなることがあります

その場合には以下の方法で修正を行ってみてください

  1. コードの中に全角の記号が入っていませんか?
  2. 半角にすることで解消できます
  3. コードの中に全角の空白(スペース)がありませんか?
  4. 半角にすることで解決できます
  5. コードは合っているはずなのに更新できないときは
  6. 特にエラーの出た行内に日本語での文字列が入っている場合には全角での文字列があるということでエラーになる場合があり、Wordpressのエディタチェックではこれを「’」や「)」など閉じ子のエラーとして認識され更新できないことがあります。エラーとして返される行の先頭に空白がある場合には空白をなくすことできちんと認識され更新されるようになることが多いです。
  7. 「何かが間違っています...」と表示され、更新できないときは
  8. このエラーは本当に何がエラーなのかをWordpressのチェックが判断できない場合に発生します。解決策としてはその画面を開き直すことなのですが、その際希に元のコードがすべて削除されてしまう場合がありますので、今表示されているコードを一旦どこかへコピーしてからページの再読み込みをするようにしてやり直します。
    ※このエラーは不明なエラーなので予期せぬ動きをする可能性がありますので特に慎重な対処が必要です
これらのエラー対処については以下のページが参考になるかも知れません

コードを転載する場合には

ご自身のサイトで当ページで紹介しているコードを転載される場合には当ページへのリンクを入れていただきますようお願いいたします

というコードが何をしているのかというと、Wordpress標準の画像処理機能であるGDをImagickでの処理に変えてちょーだい!という命令になります。

GDやImagickについての解説はご自身で調べていただくとして、なるほどこれは画期的かも知れないということで即導入させていただきました。サーバーでこの処理方法に対応していない場合には使用するとエラーが出るので、Imagickを導入するか、この変更をあきらめるかのいずれかになりますのでご注意を!!

掲載していただいたことに感謝します!!


私の場合ではありますが、最終的に

  1. 面倒&できない人がいるのでパソコンでの画像の圧縮はしない
  2. 画像アップロード時の同時圧縮処理を停止(プラグインの設定)
  3. 画像の生成をGDからImagickへ変更

で様子見することにしました。

これでだめならサーバーのプランを上位へ変更するか、1枚ずつアップロードするかしかないですね。

あんまりメモリやCPUのエラーで転ぶという状態が頻発すると共用サーバーでは負荷上昇により契約解除(泣)なんてことにもなりかねないので原因をしっかり調べて早めに対処されることをおすすめします。

全くの余談ですけど、画像投稿サイトなどのサービスはよっぽどすごい仕様のサーバーなんでしょうね、きっと。たくさんの人が同時にいろんなサイズの画像をアップロードするでしょうに・・・。

ひまあーと(管理人)
  • 記事の作者: ひまあーと(管理人)

  • ☆最後までお読みいただきありがとうございました。記事作者のひまあーとです。
    ☆Wordpressでサイトをカスタマイズしていく上で有用な情報を配信しつつ、「ココナラ」でサイトカスタマイズのお手伝い、不具合の修復、サイト引っ越し代行などをさせていただいております。
    ☆Wordpressネタが多いですが、趣味の「園芸」「卓球」などの情報や日々の出来事などもどんどん増やしていきますのでよろしくお願いいたします。


いつでもご相談・サイトカスタマイズの依頼を受け付けています

Wordpressのカスタマイズ、不具合解消のご相談はすべてココナラのダイレクトメッセージからお受けしております。まずはこちらのバナーからお気軽にお問い合わせください。

※一度もココナラを使ったことがない方はココナラへの無料登録が必要です。こちらから登録後、上のリンクをクリックする、またはココナラトップページから「ひまあーと」を検索してお問い合わせください。


【スポンサーリンク】


記事の拡散にご協力をお願いします

閲覧いただきありがとうございました。役に立つ情報でしたら是非SNSでシェアをお願いします

関連情報