コンテンツにスキップ

「CURL」の版間の差分

提供: ArchWiki
削除された内容 追加された内容
See also: 訳出
Kgx (トーク | 投稿記録)
HTTP POST: 同期
 
(2人の利用者による、間の12版が非表示)
1行目: 1行目:
{{Lowercase title}}
{{Lowercase title}}
[[en:CURL]]
[[en:CURL]]
[[ru:CURL]]
[[Category:ダウンロードユーティリティ]]
[[Category:ダウンロードユーティリティ]]
[https://curl.haxx.se/ cURL] は URL を使ってデータを転送するためのコマンドラインツールおよびライブラリです。このコマンドは、[[HTTP]]、HTTPS、[[FTP]]、[[SCP]] や SFTP などさまざまなプロトコルをサポートしています。また、スクリプトのように、ユーザーの操作なしで動作するように設計されています。
[https://curl.haxx.se/ cURL] は URL を使ってデータを転送するためのコマンドラインツールおよびライブラリです。このコマンドは、[[HTTP]]、HTTPS、[[FTP]]、[[SCP]] や SFTP などさまざまなプロトコルをサポートしています。また、スクリプトのように、ユーザーの操作なしで動作するように設計されています。

{{Note|表面的には wget と同等ですが、違う部分もあります、こちらを参照してください。[https://curl.se/docs/faq.html#Can_I_do_recursive_fetches_with 再帰的フェッチを実行できますか?]、[https://superuser.com/a/972282 指定された wget コマンドと同等の curl コマンドを実行できますか?] [https://curl.se/docs/faq.html#What_is_curl_not curl には無いもの]}}


== インストール ==
== インストール ==
12行目: 15行目:
=== ダウンロード ===
=== ダウンロード ===


cURL の一般的な使用例は、指定したファイルにリソースをダウンロードすることです
cURL の一般的な使用例は、指定したファイルにリソースをダウンロードすることです:


$ curl -o ''file name'' ''URL''
$ curl --output ''file name'' ''URL''


URL にファイル名が含まれている場合は、リソースをその名前のファイルに直接保存できます
URL にファイル名が含まれている場合は、リソースをその名前のファイルに直接保存できます:


$ curl -O ''URL''
$ curl --remote-name ''URL''


同様に、{{ic|-J}} を使用すると、ファイルの名前を決めるためのヒントを HTTP サーバー ({{ic|Content-Disposition}} ヘッダー) から受け取ることができます。{{ic|-O}} と組み合わせると、HTTP サーバーが応答でファイル名のヒントを返さなかった場合は、curl は URL で指定されたファイル名を使用します。
同様に、{{ic|-J/--remote-header-name}} を使用すると、HTTP サーバー({{ic|Content-Disposition}} ヘッダー)からファイル名のヒントを受け取ることができます。これを {{ic|-O/--remote-name}} と組み合わせると、HTTP サーバーが応答でファイル名のヒントを返さなかった場合は、curl は URL で指定されたファイル名を使用します。


また、出力オプションを省略して、リソースを標準出力に出力することもできます
また、出力オプションを省略して、リソースを標準出力に出力することもできます:


$ curl ''URL''
$ curl ''URL''
28行目: 31行目:
=== HTTP POST ===
=== HTTP POST ===


cURL を使用して HTTP POST リクエストを行うことができます:
You can use cURL to make HTTP POST requests:


$ curl -d ''<nowiki>'request body'</nowiki>'' ''URL''
$ curl --data ''<nowiki>'request body'</nowiki>'' ''URL''


リクエストの本文がコマンドラインに収まらない場合は、cURL はファイルからリクエストを読み込むことができます:
If the request body cannot fit on the command line, cURL can read it from a file:


$ curl -d @''file name'' ''URL''
$ curl --data @''filename'' ''URL''


場合によっては、{{ic|Content-Type}} ヘッダーにカスタム値を指定する必要があります (cURL のデフォルトは {{ic|application/x-www-form-urlencoded}} です) これを {{ic|-H}} を使用して行うことができます。例えば、JSONボディでPOSTリクエストを送信したい場合は、次のようにします:
Sometimes, you may need to specify a custom value for the {{ic|Content-Type}} header (cURL's default is {{ic|application/x-www-form-urlencoded}}). You can do this with {{ic|-H}}. For example, if you wanted to make a POST request with a JSON body:


$ curl -d ''<nowiki>'json body'</nowiki>'' -H 'Content-Type: application/json' ''URL''
$ curl --data ''<nowiki>'json body'</nowiki>'' -H 'Content-Type: application/json' ''URL''

なお、curl には json で投稿データを書き込み、それらのヘッダーを自動的に変更するオプションもあります: {{ic|--json}}:
$ curl --json '{"key":"value"}' ''URL''

== ヒントとテクニック ==

=== リダイレクトを追跡する ===

リダイレクト (HTTP から HTTPS へのリダイレクトなど) を追跡するには:

$ curl --location ''URL''

=== ダウンロードエラーを表示する ===

デフォルトでは、curl はエラーを無視します (たとえば、ファイルをダウンロードするときに、エラーが発生しても、curl は通知せず、空のファイルを作成します) エラーメッセージを表示させたい時は {{ic|--fail}} を使います:

$ curl --fail ''URL''

=== 圧縮 ===

データを [https://everything.curl.dev/usingcurl/downloads/compression 圧縮] して転送する場合 (たとえば、帯域幅が CPU よりも制限されている状況では、curl はデータを圧縮してダウンロードし、ダウンロード後に圧縮を解除します):

$ curl --compressed ''URL''

=== プログレスバー ===

curl には、ファイルをダウンロードするときに通常の ProgressBar を使用するオプションがあります (例:{{ic|[##### ] 80%}} )

$ curl --progress-bar ''URL''

=== globing ===

また、curl で [https://everything.curl.dev/cmdline/globbing globing] を使用することもできます。

$ curl "example.com/images/[1-9].png"
$ curl "example.com/{first_page,second_page,third_page}"

== 設定ファイル ==

curl はホームディレクトリと {{ic|$XDG_CONFIG_HOME}} で {{ic|.curlrc}} という [https://everything.curl.dev/cmdline/configfile config file] を検索します。デフォルトの curl で使用したいコマンドライン引数を入力します。例:

{{hc|$HOME/.curlrc|2=
# this is a comment, the next line would be the option for progressbar:
-#
# to make curl always compress:
--compressed
# or just
compressed
}}


== 参照 ==
== 参照 ==
45行目: 98行目:
* [https://ec.haxx.se/ Everything curl] - cURL の使用に関する広範なガイド
* [https://ec.haxx.se/ Everything curl] - cURL の使用に関する広範なガイド
* {{man|1|curl}}
* {{man|1|curl}}

{{TranslationStatus|CURL|2024-03-28|691337}}

2025年2月28日 (金) 09:25時点における最新版

cURL は URL を使ってデータを転送するためのコマンドラインツールおよびライブラリです。このコマンドは、HTTP、HTTPS、FTPSCP や SFTP などさまざまなプロトコルをサポートしています。また、スクリプトのように、ユーザーの操作なしで動作するように設計されています。

ノート 表面的には wget と同等ですが、違う部分もあります、こちらを参照してください。再帰的フェッチを実行できますか?指定された wget コマンドと同等の curl コマンドを実行できますか? curl には無いもの

インストール

curl パッケージをインストールします。

使用方法

ダウンロード

cURL の一般的な使用例は、指定したファイルにリソースをダウンロードすることです:

$ curl --output file name URL

URL にファイル名が含まれている場合は、リソースをその名前のファイルに直接保存できます:

$ curl --remote-name URL

同様に、-J/--remote-header-name を使用すると、HTTP サーバー(Content-Disposition ヘッダー)からファイル名のヒントを受け取ることができます。これを -O/--remote-name と組み合わせると、HTTP サーバーが応答でファイル名のヒントを返さなかった場合は、curl は URL で指定されたファイル名を使用します。

また、出力オプションを省略して、リソースを標準出力に出力することもできます:

$ curl URL

HTTP POST

cURL を使用して HTTP POST リクエストを行うことができます:

$ curl --data 'request body' URL

リクエストの本文がコマンドラインに収まらない場合は、cURL はファイルからリクエストを読み込むことができます:

$ curl --data @filename URL

場合によっては、Content-Type ヘッダーにカスタム値を指定する必要があります (cURL のデフォルトは application/x-www-form-urlencoded です) これを -H を使用して行うことができます。例えば、JSONボディでPOSTリクエストを送信したい場合は、次のようにします:

$ curl --data 'json body' -H 'Content-Type: application/json' URL

なお、curl には json で投稿データを書き込み、それらのヘッダーを自動的に変更するオプションもあります: --json:

$ curl --json '{"key":"value"}' URL

ヒントとテクニック

リダイレクトを追跡する

リダイレクト (HTTP から HTTPS へのリダイレクトなど) を追跡するには:

$ curl --location URL

ダウンロードエラーを表示する

デフォルトでは、curl はエラーを無視します (たとえば、ファイルをダウンロードするときに、エラーが発生しても、curl は通知せず、空のファイルを作成します) エラーメッセージを表示させたい時は --fail を使います:

$ curl --fail URL

圧縮

データを 圧縮 して転送する場合 (たとえば、帯域幅が CPU よりも制限されている状況では、curl はデータを圧縮してダウンロードし、ダウンロード後に圧縮を解除します):

$ curl --compressed URL

プログレスバー

curl には、ファイルをダウンロードするときに通常の ProgressBar を使用するオプションがあります (例:[##### ] 80% )

$ curl --progress-bar URL

globing

また、curl で globing を使用することもできます。

$ curl "example.com/images/[1-9].png"
$ curl "example.com/{first_page,second_page,third_page}"

設定ファイル

curl はホームディレクトリと $XDG_CONFIG_HOME.curlrc という config file を検索します。デフォルトの curl で使用したいコマンドライン引数を入力します。例:

$HOME/.curlrc
# this is a comment, the next line would be the option for progressbar:
-#
# to make curl always compress:
--compressed
# or just
compressed

参照

翻訳ステータス: このページは en:CURL の翻訳バージョンです。最後の翻訳日は 2024-03-28 です。もし英語版に 変更 があれば、翻訳の同期を手伝うことができます。