Table of Contents
5월 13일 (수) TIL
작성한 API를 테스트 하기 위해서 Postman 이나 Paw를 주로 사용하는데,
CURL을 사용해서 CLI에서 테스트해야 되는 경우도 종종 있다. 새롭게 API를 테스트 하던 중 CURL
을 사용해서 파일 업로드 API를 테스트 하는 방법을 확인해 봤다.
기본 사용법
먼저 파일을 업로드 하는 request
를 위해서는 multipart/form-data
형식으로 보내야 하는데 이를 위해서 사용할 CURL 옵션은 -F(--form)
이다. (대문자!!)
그리고 파일의 path를 지정해서 보내면 된다.
$ curl -F ‘file1=@/upload/file/path’ http://file.testApi.com
여러개 파일 전송
여러개의 파일을 보내야 하는 경우에는 -F
옵션을 연속해서 사용하면 된다.
$ curl -F ‘file1=@/upload/file1/path’ -F ‘file2=@/upload/file2/path’ http://file.testApi.com
파일변수가 배열인 경우
가끔씩 수신하는 서버의 파일파라미터가 배열연 경우도 있다 이 경우는 아래처럼 하면 된다.
$ curl -F ‘file[]=@/upload/file1/path’ -F ‘file[]=@/upload/file2/path’ http://file.testApi.com
다른 변수값 함께 전달
파일과 함께 다른 인자를 같이 넘겨줘야 되는 경우도 있는데 이럴 때는 path
형태가 아닌(@ 가 없는) 형태로 보내면 된다.
$ curl -F ‘file1=@/upload/file/path’ -F 'userId=1' -F 'title=test' http://file.testApi.com
filename 지정
파일인자말고, 원래의 파일이름을 명시하기를 원할 수도 있다.
$ curl -F ‘file1=@/upload/file/path;filename=Profile1.png’ http://file.testApi.com
참고 : https://medium.com/@petehouston/upload-files-with-curl-93064dcccc76
comments powered by Disqus
FEATURED TAGS
accesscontrol
adaptive-growth
alpine-linux
ansible
ansible-tower
apache2.4
architecture
argocd
asgi
aws
awx
backoffice
beautiful-goodbye
begining-docker
benchmark
blockhound
blocking-code
blog
book
brew-cask
build-cache
collaboration
communication
composer
confluence
cronjob
curl
customizing
customlog
data.sql
database
developer
difference
docker
docker-desktop
dockerize
dos-attack
eks
elasticsearch
empty-string
environment-to-do-well
errorlogformat
event-driven
experience
file-upload
filebeat
fluentd
forwarded-option
framework
fuse.js
golang
graceful-deploy
happy-new-year
haproxy
haproxy-1.8
haproxy-acl-logging
haproxy-custom-variable-logging
haproxy-metric
haproxy-reload-fail
haproxy-stat
heap-memory
hedgehog-sharp
how-do-i-work
hugo
index-alias
install
installation
instance-type
inverted-index
istio
iterm
java
jdk-21
jekyll
jekyll-to-hugo
jetbrains
json
k8s
k8s-api
kmooc
kubernetes
leadership
learning-in-2019
lets-encrypt
letsencrypt
limit_req_zone
litestar
logstash
m1-macbook-pro
macro
macro-key-mapping
mapping
match
match_phrase
maven
microservice-설계-및-구현
migration
mm
multi-datasource
mysql
nginx
nginx-ingress
nginx-regexp
ngram
null
openjdk
partial-matching
phpstorm
poeaa
portfolio-expansion
product-strategy
python
query-dsl
rate-limit
rate-litmiting
rds
reindex
rss-template
seamless-reload
search-on-hugo
service-account-role
sidebar-search
speed-up
speedup
spring
spring-boot
spring-camp
spring-camp-2023
spring-event
ssh
struct
study
system-manager
systemd-reload
template
term
throughput
timezone
tips
traffic-management
ulid
unused-plugins
uuid
ux-consideration
virtual-thread
vm-options
webflux
wildcard
zero-downtime
만들면서-배우는-클린-아키텍처
시작하세요-도커
엔터프라이즈-애플리케이션-아키텍처-패턴
쿠버네티스-시작하기