複数のファイルに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
単一引用符()を使用する場合を除いて問題はありません。または 。'
%27
xargs -l
これはUnixサイトなので、Unixバリアントを実行し、bashなどのUnixシェルでこれらのコマンドを呼び出すとします。を実行していると思うと、curl.exe
Windows を使用しているようです。 Unixツールを使用する場合は、Unixシェル(bashやzshなど)でこれを行うことをお勧めします。 Windowsには、xargs
またはコマンド置換機能はありません(少なくとも同じ形式ではありません)curl
。cmd
Windowsツールを使用してこれを行う方法があるかもしれませんが、それが何であるかわからないので、ここではトピックを超えています。
また、WindowsでUnixツールを使用している場合は、URLリストがWindows行末(CR + LF)ではなくUnix行末(LFのみ)を使用していることに注意してください。 Unixツールは行がLFで終わり、CRをプレーン文字として扱うことを期待しています。詳細については、次を参照してください。ディレクトリが2回一覧表示されますそしてこのサイトの他の多くの質問。
答え2
答え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.xml
CMDプロンプトで実行します。mycurlscript.bat