ファイルに含まれるURLのリストをカーリングに渡します。

ファイルに含まれるURLのリストをカーリングに渡します。

複数のファイルにACLを設定する必要があります。次のコマンドを使用して保存されたオブジェクトのリストをダウンロードしました。

C:\Users\Gshrivastava\Downloads\curl_748_0>curl  -o urlname.csv -i -k -H "Authorization: HCP bXFl:29def7dbc8892a9389ebc7a5210dd844" -H "Content-Type: application/xml" -H "Accept:application/xml" -d @mqe.xml "http://tenant.hcp3.hdsblr.com/query?prettyprint

その後、URL名をテキストファイルにソートしました。

ns.tenant.hcp3.hdsblr.com/rest/pic/Cat/images.jpg 
ns.tenant.hcp3.hdsblr.com/rest/pic/Cat/6.png 
ns.tenant.hcp3.hdsblr.com/rest/pic/landscape/9.png 
ns.tenant.hcp3.hdsblr.com/rest/pic/landscape/5.png  

テキストファイルの内容>

これで、すべてのファイル名がACLに設定されるように、このファイルをパラメータまたは変数として使用したいと思います。

curl.exe -k http://ns.tenant.hcp3.hdsblr.com/rest/ACL/filename.ext/?type=acl -i -H "Authorization: HCP YWRtaW4=:29def7dbc8892a9389ebc7a5210dd844" -T acl.xml 

答え1

私が正しく理解したら、URLリスト(1行に1つ)を含むファイルがあり、これらのURLをCURLに渡したいと思います。

これを行う2つの主な方法があります。xargsまたはコマンドの置き換え。そしてxargs

xargs <urls.txt curl …

次のコマンドで交換してください。

curl … $(cat urls.txt)

どちらの方法も一部の特殊文字を破ることができますが、URLで有効な文字を考慮すると、エンコードする必要があるxargs単一引用符()を使用する場合を除いて問題はありません。または 。'%27xargs -l

これはUnixサイトなので、Unixバリアントを実行し、bashなどのUnixシェルでこれらのコマンドを呼び出すとします。を実行していると思うと、curl.exeWindows を使用しているようです。 Unixツールを使用する場合は、Unixシェル(bashやzshなど)でこれを行うことをお勧めします。 Windowsには、xargsまたはコマンド置換機能はありません(少なくとも同じ形式ではありません)curlcmdWindowsツールを使用してこれを行う方法があるかもしれませんが、それが何であるかわからないので、ここではトピックを超えています。

また、WindowsでUnixツールを使用している場合は、URLリストがWindows行末(CR + LF)ではなくUnix行末(LFのみ)を使用していることに注意してください。 Unixツールは行がLFで終わり、CRをプレーン文字として扱うことを期待しています。詳細については、次を参照してください。ディレクトリが2回一覧表示されますそしてこのサイトの他の多くの質問。

答え2

このコマンド xargs -n 1 curl -O < urls.txt

渡すゴティ

源泉

答え3

カールには、次の形式のファイルから読み取るために複数のURLを渡すことができる-Kオプションがあります。

url = url1
# Uncomment if you want to download the file 
# output = "file1"
# Uncomment if your sysadmin only allows well known User Agent 
# user-agent = "Mozilla/5.0"

xargs(wget - iスタイル)も使用できます。

$ xargs -a urls.txt -I{} curl -# -O {}

urls.txt 形式:

https://download.libsodium.org/libsodium/releases/LATEST.tar.gz
https://download.libsodium.org/libsodium/releases/libsodium-1.0.16.tar.gz.sig

ここで使用してください。

curl -# -K - <<URL
    url = "https://download.libsodium.org/libsodium/releases/libsodium-1.0.16.tar.gz"
    output = "libsodium-1.0.16.tar.gz"

    url = "https://download.libsodium.org/libsodium/releases/libsodium-1.0.16.tar.gz.sig"
   output="libsodium-1.0.16.tar.gz.sig"
URL

引用する

答え4

Windowsを使用しており、CMDプロンプトを使用しているようです。上記の例では、Linux環境があるとします。ただし、CMDプロンプトでこれを行うには、バッチファイル(たとえばmycurlscript.bat)を作成し、次のように入力します。

@echo off
for /F "tokens=*" %%A in (urls.txt) do curl.exe -k %%A -i -H "Authorization: HCP YWRtaW4=:29def7dbc8892a9389ebc7a5210dd844" -T acl.xml

次に、ダウンロードしたいURLのリストをファイルurls.txtと同じディレクトリに保存し、acl.xmlCMDプロンプトで実行します。mycurlscript.bat

関連情報