0

サーバーに大きな画像をアップロードする際に、この奇妙な問題に苦労しています。私はクライアントでblueimpファイル画像のアップロードを使用しており、サーバーはRails 4で、画像を処理するためにcarrierwaveを使用しています(とにかくうまくいかないようです)。

画像が 1.2 MB 以下であれば問題ありません。しかし、画像がこれよりも大きくなるとすぐに、通常の応答ではなく、サーバーから次の応答が返されます。

HTTP/1.1 500 Internal Server Error
Content-Type: text/html; charset=utf8
X-Pow-Template: error_starting_application
Connection: keep-alive
Transfer-Encoding: chunked

development.log によると、サーバーは、routes.rb で定義されているように、単純な「Completed 201 Created in 1402ms」を実行しています (ただし、アクションは実行されません)。サーバーに送信されるヘッダーは次のとおりです。

POST /images HTTP/1.1
Host: mysite.dev
Connection: keep-alive
Content-Length: 1081439
Accept: application/json, text/javascript, */*; q=0.01
Origin: http://mysite.dev
X-CSRF-Token: ynCLWDzF90l3BhmMcmxF+KCFiws3tnQiFAuWp+Buqcw=
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.65 Safari/537.36
X-Requested-With: XMLHttpRequest
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryT5ZwwFlboJY4Cz7n
Referer: http://mysite.dev/images/new
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8,ru;q=0.6

私のクライアント設定は、Blueimp のデモで指定されたものとあまり変わらないので、何が間違っているのかよくわかりません。

  url: "/images"
  paramName: "image[image]"
  type: "POST"
  dataType: "json"
  formData: ""
  disableImageResize: false
  acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i

コントローラー アクションのコードは次のとおりです。

def create
  @image = Image.create image_params
  respond_with @image, layout: false
end

小さなファイルの場合、すべてがスムーズに進みます。

HTTP/1.1 201 Created
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
X-UA-Compatible: chrome=1
Location: http://mysite.dev/images/298
Content-Type: application/json; charset=utf-8
ETag: "410e24f50d02125716bfc46eb7850c1f"
Cache-Control: max-age=0, private, must-revalidate
X-Request-Id: 40e527d0-e16a-4a4e-a2e5-6124d8e639ff
X-Runtime: 1.533655
Connection: close

クライアントから送信されるヘッダーは同じなので、ここでは違いはありません。サーバー構成に問題がある可能性があります (大きなファイルを受け入れない) が、見つかりません。

ご協力ありがとうございました!

UPD: 理由が見つかりました。実際にすべての問題を引き起こしたのは pow でした。すべてがネイティブサーバーの実行で完全に機能します。

4

0 に答える 0