파일에 포함된 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 목록(한 줄에 하나씩)이 포함된 파일이 있고 이러한 URL을 CURL에 전달하려는 것입니다.

이를 수행하는 두 가지 주요 방법이 있습니다.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더 이상 curl또는 cmd명령 대체 기능이 제공되지 않습니다(적어도 동일한 형식은 아님). Windows 도구를 사용하여 이를 수행할 수 있는 방법이 있을 수 있지만 그것이 무엇인지 모르겠으며 여기서는 주제에서 벗어납니다.

또한 Windows에서 Unix 도구를 사용하는 경우 URL 목록이 Windows 줄 끝(CR+LF)이 아닌 Unix 줄 끝(LF만)을 사용한다는 점에 유의하세요. Unix 도구는 줄이 LF로 끝나고 CR을 일반 문자로 처리할 것으로 예상합니다. 자세한 내용은 다음을 참조하세요.디렉터리가 두 번 나열됨그리고 이 사이트에 있는 다른 많은 질문들.

답변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

관련 정보