여러 파일에 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 목록(한 줄에 하나씩)이 포함된 파일이 있고 이러한 URL을 CURL에 전달하려는 것입니다.
이를 수행하는 두 가지 주요 방법이 있습니다.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
답변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