質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

cURL

cURLはHTTP, FTPやTelnetなど複数のプロトコルを用いてデータを転送するライブラリとコマンドラインツールを提供します。

POST

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

シェル

シェル(shell)はUnix や Linux 系のOSで使用されるコマンドインタプリタを指します。

Q&A

解決済

1回答

10316閲覧

curlにてファイルをアップロードする際に10MBを超えるとエラーになる

senaha

総合スコア17

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

cURL

cURLはHTTP, FTPやTelnetなど複数のプロトコルを用いてデータを転送するライブラリとコマンドラインツールを提供します。

POST

POSTはHTTPプロトコルのリクエストメソッドです。ファイルをアップロードしたときや入力フォームが送信されたときなど、クライアントがデータをサーバに送る際に利用されます。

シェル

シェル(shell)はUnix や Linux 系のOSで使用されるコマンドインタプリタを指します。

0グッド

0クリップ

投稿2017/02/28 04:30

編集2017/02/28 05:04

###前提・実現したいこと
Centos7.0を使用しています。
シェル上でcurlを使用してファイルサイズが10MB以上のファイルをPOSTしたいです。

###発生している問題・エラーメッセージ
コンソールにて実行時に以下のメッセージが表示されます。

HTTP/1.1 400 Bad Request Connection: close Content-Length: 0 Date: Tue, 28 Feb 2017 02:47:22 GMT

実行時に出力したログは以下となります。

<= Recv header, 26 bytes (0x1a) 0000: HTTP/1.1 400 Bad Request <= Recv header, 19 bytes (0x13) 0000: Connection: close <= Recv header, 19 bytes (0x13) 0000: Content-Length: 0 <= Recv header, 37 bytes (0x25) 0000: Date: Tue, 28 Feb 2017 02:47:22 GMT <= Recv header, 2 bytes (0x2) 0000: == Info: we are done reading and this is set to close, stop send == Info: Closing connection 0

###該当のソースコード

curl -i -X POST http://192.168.1.1/API/backup \ -H "authorization: AAA BBB " \ -F "backup={\"id\": \"$id\" };type=application/json" \ -F "file=@/tmp/backup.zip" -k \ --trace-ascii backup_log.txt

###試したこと
送るファイルのサイズを10MB以下にすると応答は200で正常に終了しました。

###curlのバージョン
curl 7.29.0 (x86_64-redhat-linux-gnu) libcurl/7.29.0 NSS/3.19.1 Basic ECC zlib/1.2.7 libidn/1.28 libssh2/1.4.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp scp sftp smtp smtps telnet tftp
Features: AsynchDNS GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz

###確認したいこと
curlでPOSTする際には上限値が決まっているのでしょうか?
決まっている場合はそれを変更する方法を教えていただきたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

BadRequestが返ってくるということは、受け取る側の設定の問題かと思います。サーバのPHPやApacheの設定で上限が設定されていることがよくあります。POSTのサイズ制限といったキーワードで検索したらいろいろ記事が出てきます。

http://bashalog.c-brains.jp/12/02/02-105952.php

投稿2017/02/28 05:05

masaya_ohashi

総合スコア9206

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

senaha

2017/02/28 06:49

ご回答ありがとうございます。 サーバ側の担当に確認したところ、古い設定が適用されていました。 サーバ側のweb.xmlに以下を追加したところ、エラー無く終了いたしました。 <servlet> <servlet-name>restApiServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/WebAPI-context.xml</param-value> </init-param> <init-param> <param-name>throwExceptionIfNoHandlerFound</param-name> <param-value>true</param-value> </init-param> <load-on-startup>1</load-on-startup> <multipart-config> <max-file-size>5368709120</max-file-size> <max-request-size>5369757696</max-request-size> <file-size-threshold>0</file-size-threshold> </multipart-config> </servlet> お忙しい中ご教示頂き、有難う御座いました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問