폴더 웹훅

외부에서 보내는 파일을 지정한 폴더로 자동으로 받아올 수 있습니다. 폴더마다 고유한 수신 주소가 만들어지고, 외부에서 그 주소로 데이터를 보내면 폴더에 자동으로 저장됩니다.


시작하기 전에

폴더에 웹훅 만들기

  1. 웹훅을 받을 폴더의 이름 옆 설정(⚙️) 아이콘을 선택합니다. 폴더 설정
  2. 자동 수신(웹훅) 탭에서 추가 버튼을 선택합니다.
  3. 인증 방식과 충돌 정책을 선택합니다. 두 값 모두 아래에서 자세히 설명합니다. 웹훅 만들기
  4. 생성 버튼을 선택하면 폴더만의 고유한 수신 주소(URL)가 만들어집니다. Secure를 선택했다면 서명 키(signing secret)도 함께 만들어집니다. 이 값들은 지금만 표시되고 나중에는 다시 확인할 수 없으니, 안전한 곳에 복사해 둡니다.Simple 인증으로 생성한 웹훅
  5. 화면에 표시된 수신 주소와 예시 가이드에 따라 외부 시스템에서 웹훅을 설정합니다. 인증 방식별 요청 예시는 아래 "인증 방식 선택하기"에서 확인합니다.
  6. 웹훅이 설정된 폴더는 아이콘이 보입니다.

인증 방식 선택하기

웹훅을 만들 때 Simple과 Secure 중 하나를 선택합니다.

인증 방식동작
Simple수신 주소(URL) 자체가 인증 정보입니다. 별도 서명 없이 발급된 주소로 POST 요청만 보내면 파일이 저장됩니다.
Secure요청마다 X-Webhook-Timestamp, X-Webhook-Nonce, X-Webhook-Signature 헤더에 HMAC 서명을 계산해서 함께 보내야 합니다. 수신 주소가 외부에 노출되더라도 서명 없이는 요청이 거부됩니다.

Simple로 만든 웹훅은 URL만으로 요청을 보낼 수 있습니다.

# Upload a file via multipart
curl -i -X POST "https://<수신 주소>?filename=photo.jpg" \
  -F "file=@./photo.jpg"

Secure로 만든 웹훅은 요청 본문(멀티파트 바디 전체를 경계·파트 헤더까지 포함해 SHA-256으로 해시한 값)을 서명에 포함해야 합니다. Secure 웹훅 설정 화면

# Upload a file via multipart (with HMAC signature)
TS=$(date +%s)
NONCE=$(cat /proc/sys/kernel/random/uuid)
BOUNDARY="------------------------$(cat /proc/sys/kernel/random/uuid)"
TMP=$(mktemp /tmp/multipart.XXXXXX)

# Build the raw multipart body first, then hash that body.
printf -- --%s$'\r\n' "$BOUNDARY" > "$TMP"
printf 'Content-Disposition: form-data; name="file"; filename="photo.jpg"' >> "$TMP"
printf $'\r\n' >> "$TMP"
printf 'Content-Type: application/octet-stream' >> "$TMP"
printf $'\r\n\r\n' >> "$TMP"
cat ./photo.jpg >> "$TMP"
printf $'\r\n' >> "$TMP"
printf -- --%s--$'\r\n' "$BOUNDARY" >> "$TMP"

BODY_SHA=$(sha256sum "$TMP" | awk '{print $1}')
SIG=$(printf 'POST\n<수신 경로>\n%s\n%s\n%s' "$TS" "$NONCE" "$BODY_SHA" \
  | openssl dgst -sha256 -hmac "$SECRET" -binary | xxd -p -c 256)

curl -i -X POST "https://<수신 주소>?filename=photo.jpg" \
  -H "Content-Type: multipart/form-data; boundary=$BOUNDARY" \
  -H "X-Webhook-Timestamp: $TS" \
  -H "X-Webhook-Nonce: $NONCE" \
  -H "X-Webhook-Signature: sha256=$SIG" \
  --data-binary @"$TMP"

rm -f "$TMP"

충돌 정책 선택하기

같은 이름의 파일을 다시 받았을 때 처리할 방법을 정합니다. 웹훅을 만들 때 선택하며, 생성한 뒤에도 같은 화면에서 다시 조정하고 적용을 선택해 바꿀 수 있습니다.

정책동작
거부같은 이름의 파일이 있으면 새로 받은 파일을 저장하지 않습니다.
덮어쓰기기존 파일을 새로 받은 파일로 바꿉니다.
이름 변경기존 파일은 그대로 두고, 새로 받은 파일을 다른 이름으로 저장합니다.

파일명 지정하기

업로드하는 파일의 이름은 다음 두 가지 방법 중 하나로 지정합니다.

  • 쿼리 파라미터: ?filename=report.json
  • HTTP 헤더: X-Webhook-Filename: report.json

파일명 지정 방법

받은 데이터 확인

외부에서 보낸 데이터는 폴더에 파일로 쌓입니다. 폴더를 열어 수신 내역을 확인합니다.

웹훅 일시정지 및 삭제

  • 폴더에서, 웹훅을 일시정지하거나 삭제할 수 있습니다. 목록에서 웹훅에 마우스를 올리면 일시정지·삭제 버튼이 나타납니다. 웹훅 목록에서 일시정지·삭제 버튼
  • 내가 어느 폴더에 웹훅을 설정했는지를 계정 설정의 내 웹훅 탭에서 한눈에 볼 수 있습니다. 이 목록에서도 웹훅을 일시정지하거나 삭제할 수 있습니다.

가이드

이렇게 쓰면 좋아요

  • 홈페이지/화면 모니터링: Zapier, n8n, Make 등에서 정기적으로 캡처한 홈페이지 스크린샷을 자동으로 폴더에 쌓아 변경 이력을 추적할 수 있습니다.
  • 업무 자동화 결과물 저장: RPA·자동화 툴에서 생성한 보고서, 인보이스, PDF 등을 사람 개입 없이 바로 폴더에 저장합니다.
  • 폼 제출 첨부파일 수집: 구글 폼, Typeform 등에서 제출된 첨부파일을 자동으로 한 폴더에 모을 수 있습니다.
  • 빌드/배포 산출물 저장: CI/CD 파이프라인에서 생성된 빌드 아티팩트나 테스트 리포트를 자동으로 전달받을 수 있습니다.

관련 문서