s3 버킷의 바이너리 .apk 파일을 POST API에 게시하려고 합니다.
내가 아는 로컬 방식은 다음과 같습니다.
curl -X POST https://xxx.example.com:443/api/storage/upload -H "Content-Type:application/octet-stream" --data-binary @file_name.file
하지만
다음을 시도하면 작동하지 않습니다.
curl -X POST https://xxx.example.com:443/api/storage/upload -H "Content-Type:application/octet-stream" --data-binary @example.com/app-debug.apk
나는 오류 아래에 있습니다.
Warning: Couldn't read data from file Warning: "https://s3-eu-west-1.amazonaws.com/files.greenhouseci.com/projects/6d Warning: 7f406a-2a65-4be0-83ee-75ca0afae7c9/builds/24f78eb5-819f-44d5-9c21-edce Warning: 4dc9f253/artefacts/app-debug.apk", this makes an empty POST.
답변1
@
여기서 일어나는 일은 당신이 이 옵션을 남용하고 있다는 신호입니다 --data-binary
. for는 사용법을 매우 man page
명확하게 설명합니다.curl
데이터를 문자로 시작하는 경우
@
나머지는 데이터를 읽으려는 파일 이름이거나 데이터를 읽으-
려는 파일 이름이어야 합니다.curl
표준 입력.
당신이 쓴 내용 curl
은문서app-debug.apk
하위 디렉토리에서 호출됨 example.com
:
curl ... --data-binary @example.com/app-debug.apk
그런 다음 파일을 찾을 수 없다는 메시지를 표시하지만 나머지 명령을 완료하여 결과가 비어 있습니다 POST
.
Warning: Couldn't read data from file Warning: "https://s3-eu-west-1.amazonaws.com/files.greenhouseci.com/projects/6d Warning: 7f406a-2a65-4be0-83ee-75ca0afae7c9/builds/24f78eb5-819f-44d5-9c21-edce Warning: 4dc9f253/artefacts/app-debug.apk", this makes an empty POST.
@
URI를 참조하는 데 사용할 수 있다는 내용은 어디에도 없으므로 직접 아티팩트를 가져와 POST
서버로 보내면 됩니다. 이 제안 중 어느 것이든 효과가 있을 것입니다.
POST 콘텐츠를 다운로드한 후 업로드하세요.
curl https://example.com/app-debug.apk >app-debug.apk curl -X POST https://xxx.example.com:443/api/storage/upload -H "Content-Type:application/octet-stream" --data-binary @app-debug.apk
POST 콘텐츠 스트리밍 및 업로드
curl https://example.com/app-debug.apk | curl -X POST https://xxx.example.com:443/api/storage/upload -H "Content-Type:application/octet-stream" --data-binary @-