3

Heroku の NGINX (カスタム ビルドパック) で PHP 5.4.12 を使用しています。サイズが 1.5 MB 以上の画像をアップロードするときに問題が発生します。これは私がやっていることです:

  • Heroku への PHP アップロード (iFrame と Ajax を使用)

  • 写真の切り抜き、サイズ変更、マスク (Imagick コマンド ラインを使用し、Herokuconvertで)composite

  • 編集した画像を別のサーバーに移動します (Heroku では、git でサーバーにプッシュしない限り、長期間保存できないため)。現在、これにはテスト環境/サーバーを使用していますが、最終的にはこれを S3 に移行すると確信しています。

小さなファイルは問題なく処理されます。数メガよりも大きいものは、(どのように見えるか) アップロード時間中にハングアップします。まったく同じスクリプトが、別のサーバーでも問題なく機能します。

Heroku でファイルごとに変更しphp.ini、スラッグを再コンパイルし、dyno を再起動してリセットしました。phpinfo() 呼び出しはアップロード制限の増加を示しますが、スクリプトは依然として同じように失敗します。

Heroku には 30 秒のスクリプト実行制限があるはずだと理解していますが、私が見たところ、スクリプトが最初に実行を開始する前に PHP のアップロードが行われます。

もともと別のサーバーからアップロード スクリプトを実行しようとしていましたが、アップロード スクリプトに Ajax リクエストを行っているため、CORS (クロス オリジン リソース共有) の制限に遭遇しました。一部のブラウザは従いません。

ユーザーが 1.5MB を超える画像をアップロードし、画像に対してクロッピング/マスキング スクリプトを実行し、その画像をどこかに保存できるようにする方法はありますか (Amazon S3 など)。おそらく誰かが Amazon に直接アップロードし、EC2 で画像を編集してから S3 に移動する方法を知っていますか? ありがとう!

PS、私はモバイル フレンドリーにしようとしているので、Flash を使用しないソリューションを探しています。

4

1 に答える 1