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

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

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

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

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

アップロード

アップロードは特定のファイルをウェブサーバに送るプロセスのことを指します。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

解決済

1回答

3965閲覧

curlコマンドでファイルのアップロードとその結果の確認方法

ikjmyh

総合スコア7

cURL

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

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

アップロード

アップロードは特定のファイルをウェブサーバに送るプロセスのことを指します。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

1クリップ

投稿2021/10/24 12:56

編集2021/10/24 17:50

前提・実現したいこと

curlコマンドでファイルをアップロードして、
送信先のサーバーでアップロードしたファイルを確認したいのですが。
以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>301 Moved Permanently</title> </head><body> <h1>Moved Permanently</h1> <p>The document has moved <a href="https://<送信先のサーバーのIPアドレス>/test/">here</a>.</p> </body></html>

実行したコマンド

curl -sS -k -X POST -F upfile=@test.txt https://<送信先のサーバーのIPアドレス>/test

送信したファイルの内容(test.txt)

abcde12345

試したこと

実行したコマンド1
curl -sS -k https://<送信先のサーバーのIPアドレス>
実行結果1

<html><h1>hello world!!</h1></html>

実行したコマンド2
curl -sS -k https://<送信先のサーバーのIPアドレス>/test
実行結果2

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>301 Moved Permanently</title> </head><body> <h1>Moved Permanently</h1> <p>The document has moved <a href="https://<送信先のサーバーのIPアドレス>/test/">here</a>.</p> </body></html>

実行したコマンド3
curl -sS -k -X POST -F upfile=@test.txt https://<送信先のサーバーのIPアドレス>
実行結果3

<html><h1>hello world!!</h1></html>

実行したコマンド4
curl -sS -k https://<送信先のサーバーのIPアドレス>/test/
実行結果4

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <html> <head> <title>Index of /test</title> </head> <body> <h1>Index of /test</h1> <table> <tr><th valign="top"><img src="/icons/blank.gif" alt="[ICO]"></th><th><a href="?C=N;O=D">Name</a></th><th><a href="?C=M;O=A">Last modified</a></th><th><a href="?C=S;O=A">Size</a></th><th><a href="?C=D;O=A">Description</a></th></tr> <tr><th colspan="5"><hr></th></tr> <tr><td valign="top"><img src="/icons/back.gif" alt="[PARENTDIR]"></td><td><a href="/">Parent Directory</a> </td><td>&nbsp;</td><td align="right"> - </td><td>&nbsp;</td></tr> <tr><td valign="top"><img src="/icons/text.gif" alt="[TXT]"></td><td><a href="index2.html">index2.html</a> </td><td align="right">2021-10-24 11:12 </td><td align="right"> 37 </td><td>&nbsp;</td></tr> <tr><th colspan="5"><hr></th></tr> </table> </body></html>

実行したコマンド5
curl -sS -k -X POST -F upfile=@test.txt https://<送信先のサーバーのIPアドレス>/test/
実行結果5

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>404 Not Found</title> </head><body> <h1>Not Found</h1> <p>The requested URL was not found on this server.</p> </body></html>

補足情報(FW/ツールのバージョンなど)

apacheのバージョンはApache/2.4.51
OSはAmazon Linux 2
curlのバージョンはcurl 7.76.1

よろしくお願いいたします。

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

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

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

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

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

yu_1985

2021/10/25 06:24

今回の目的は「ファイルをアップロードすること」なのか「"curlで"ファイルをアップロードすること」なのか、どっちでしょうか? 前者であればそもそもこんなことをする必要はないのですが…。
ikjmyh

2021/10/25 08:39

質問への追記・修正の依頼いただきありがとうございます。 目的は"curlで"ファイルのアップロードです。 そのつもりで質問も記載していますが、修正が必要でしょうか?
yu_1985

2021/10/25 08:58

いえ、単にファイルアップロードしたいだけだったらわざわざcurlを使う必要がないので、あえてcurlでファイルアップロードを行いたいのかそうでないのかが確認したかっただけです。 自分は明確な回答を持ち合わせていないので回答の方には書けませんが、そもそも何もせずにApacheだけでHTTPリクエストによるファイルアップロードができるもんなのでしょうか? 何の制限もかかってなかったら不審なファイルを置き放題になっちゃいそうですが…。 というわけで、きっとどこかで何らかの制限がかかっていると思われますが、それがどこで何によってかかってるのかは自分にはちょっとわかりません。
ikjmyh

2021/10/25 11:23

>そもそも何もせずにApacheだけでHTTPリクエストによるファイルアップロードができるもんなのでしょうか? 自分はあまり詳しくないので分かりかねます。 脱線しているかもしれませんが。 少し背景を説明させていただくとネット経由で送られてきたデータを処理するツールがあるのですが。 それが想定通りの結果にならず。 送信元は正しいデータを送っていると言っており、ツールのサポートに問い合わせたところログ等にエラーは見つからない、データがうまく送られていないのではないかという回答でした。 障害個所の確認のためツールで処理する前の送られてきたデータを確認したいと思っています。 そのため今回の質問でcurlでhttpsにデータを送れることを確認できれば、次は通信データを復号化する予定です。
guest

回答1

0

ベストアンサー

「リダイレクト」というのをご存じないでしょうか?
ご存じなければ「ウェブページ リダイレクト」あたりで検索してください。

https://<送信先のサーバーのIPアドレス>/testからhttps://<送信先のサーバーのIPアドレス>/test/にリダイレクトされているので、https://<送信先のサーバーのIPアドレス>/test/でアクセスすればいいかと。
応答画面にもThe document has moved ~~と書いてあります。

そこからさらにリダイレクトされているかもしれませんが。

投稿2021/10/24 15:01

otn

総合スコア84804

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

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

ikjmyh

2021/10/24 17:58

回答いただきありがとうございます。 >https://<送信先のサーバーのIPアドレス>/testからhttps://<送信先のサーバーのIPアドレス>/test/にリダイレクトされているので、https://<送信先のサーバーのIPアドレス>/test/でアクセスすればいいかと。 記載していただいた内容を参考に試したことの項目に実行したコマンド4と5を追記させていただきました。 コマンドが間違っているのかまだアップロードしたファイルを確認できていません。
otn

2021/10/24 23:58

今までに、「404 Not Found」というのを見たことあると思うのですが。 URLが違いますね。 もしくは、サーバープログラムがブラウザからのリクエスト以外は404を還している可能性もあります。
ikjmyh

2021/10/25 04:50

回答いただきありがとうございます。 >URLが違いますね。 URLが違う場合は実行したコマンド4も同じURLを指定しているので そちらも「404 Not Found」になるのではないでしょうか?
otn

2021/10/26 04:48

5しか見てなかったです。 URLに間違いが無いのであれば、 > もしくは、サーバープログラムがブラウザからのリクエスト以外は404を還している可能性もあります。 ということでしょうね。 何らかの理由で、プログラムでのアップロードを嫌っていると言うことでしょうから、回避手段はあるとしても、可否をサイト管理者に相談すべきでしょう。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問