複数のファイルに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
私が正しく理解していれば、URLのリスト(1行に1つ)を含むファイルがあり、それらのURLをCURLに渡したいと思います。
これを行うには、主に2つの方法があります: xargs
を使用するか、または コマンド置換 を使用します。 xargs
の場合:
xargs <urls.txt curl …
コマンド置換あり:
curl … $(cat urls.txt)
どちらの方法もいくつかの特殊文字をマングルしますが、URLで有効な文字が与えられれば、これは問題になりません。ただし、xargs
では、単一引用符('
)を%27
としてエンコードする必要があります。または、xargs -l
を使用します。
これはUnixサイトなので、Unixバリアントを実行していて、bashなどのUnixシェルからこれらのコマンドを呼び出していることを前提としています。 curl.exe
を実行している場合、Windowsを使用しているように見えます。 Unixツールを使用する場合は、bashやzshなどのUnixシェルから使用することをお勧めします。 Windowsには、xargs
に付属しているcurl
が付属していますが、cmd
にはコマンド置換がありません(少なくとも同じ形式ではありません)。 Windowsツールでこれを行う方法はおそらくあるでしょうが、私はそれが何であるかわからず、ここではトピックから外れています。
また、WindowsでUnixツールを使用している場合、URLのリストではWindowsの行末(CR + LF)ではなく、Unixの行末(LFのみ)を使用することに注意してください。 Unixツールは、行がLFで終わり、CRを通常の文字として扱うことを期待しています。詳細については、 ディレクトリは2回リストされています およびこのサイトの他の多くの質問を参照してください。
curlには-Kオプションがあり、複数のURLを渡して、次の形式のファイルから読み取ることができます。
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 {}
HEREDOCの使用
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