Upload Credential

최신 업데이트:2025-08-18 15:33:42

요청 양식에 업로드 자격 증명을 입력하세요. 파라미터 이름은 token입니다.

업로드 자격 증명을 생성하기 위한 세 가지 주요 데이터 소스는 다음과 같습니다.

  • 업로드 정책 데이터 (putPolicy)
    업로드 정책 데이터는 리소스 업로드 시 제공되는 구성 정보 집합입니다. 이 정보를 통해 CDNetworks 클라우드 스토리지(오브젝트 스토리지)는 사용자 업로드 요구사항(업로드할 리소스, 업로드 대상 버킷, 업로드 결과를 콜백으로 받을지 리디렉션할지 여부, 피드백 데이터 설정 필요 유무, 인증 업로드 만료 시각 등)을 인지할 수 있습니다.

  • 시크릿 키 (SecretKey)
    SK는 클라우드 스토리지 플랫폼 키 관리자에게서 받으시기 바랍니다.

  • 액세스 키 (AccessKey)
    AK도 클라우드 스토리지 플랫폼 키 관리자에게서 받으시기 바랍니다.

업로드 자격 증명uploadToken은 위 세 가지 데이터 소스를 기반으로 한 복잡한 서명 연산의 결과입니다. 업로드 자격 증명을 검증함으로써 불법적인 업로드 요청 및 침입을 차단할 수 있습니다.

업로드 정책 데이터

데이터 형식

{
  "scope": "<bucket string>",
  "deadline": "<deadline string>",
  "saveKey": "<saveKey string>",
  "returnUrl": "<returnUrl string>",
  "returnBody": "<returnBody string>",
  "overwrite": "<overwrite int>",
  "fsizeLimit": "<fsizeLimit long>",
  "callbackUrl": "<callbackUrl string>",
  "callbackBody": "<callbackBody string>",
  "persistentOps": "<persistentOps string>",
  "persistentNotifyUrl": "<persistentNotifyUrl string>",
  "contentDetect": "<contentDetctstring>",
  "detectNotifyURL": "<detectNotifyURL string>",
  "detectNotifyRule":"<detectNotifyRule>",
  "separate": "<separate int>"
}

형식 설명

필드명 필수 설명
scope 업로드 대상 버킷 <bucket>과 파일명 <key>를 지정합니다.
a. <bucket>: 지정 버킷에 파일 업로드
b. <bucket>:<key>: 지정 버킷에 key 이름으로 파일 업로드. overwrite가 1일 경우, 동일 이름의 리소스가 존재하면 덮어씁니다.
deadline 업로드 요청 권한의 만료 시각. 유닉스 타임스탬프(밀리초). 예: 1398916800000(2014-05-01 12:00:00)
saveKey 아니오 Custom Resource Name. 오브젝트 스토리지 내에서 파일의 최종 저장 경로를 지정합니다. 이 필드는 일반 업로드 방식에서만 사용됩니다.
fsizeLimit 아니오 업로드 파일 크기 제한(단위: Byte). 이 제한을 초과한 경우 업로드가 실패하고, 401 상태 코드가 반환됩니다.
참고: 0일 경우 제한 없음
overwrite 아니오 서버에 이미 존재하는 파일을 덮어쓸지 여부 지정
0 - 덮어쓰지 않음(기본값)
1 - 덮어씀
returnUrl 아니오 웹에서 파일 업로드 시, 브라우저가 303 리디렉션된 URL을 실행합니다(주로 HTML Form 업로드에서 사용).
업로드 성공 시 <returnUrl>?upload_ret=urlsafe_base64_encode(returnBody)로,
실패 시 <returnUrl>?code=<code>&message=<message>로 리디렉션됩니다. returnUrl이 없으면 returnBody의 내용이 바로 클라이언트로 반환됩니다.
returnBody 아니오 업로드 성공 시 반환할 커스텀 데이터입니다. 파일명 및 파일 주소만 반환하려면 returnBodyfname=$(fname)&url=$(url)로 지정하세요. 사용법은 Returned Data Description을 참조하세요.
callbackUrl 아니오 업로드 성공 시 클라우드 스토리지에서 POST 방식으로 이 주소에 요청을 보냅니다.
(주소는 퍼블릭 네트워크 URL이어야 하며, HTTP/1.1 200 OK 응답 가능해야 합니다. 공백 등 특수문자는 URL 인코딩 필요).
응답 데이터는 JSON 형식입니다.
callbackBody 아니오 업로드 성공 시, CDNetworks 클라우드가 callbackUrl에 POST 방식으로 데이터를 제출합니다. callbackBody는 올바른 url query string이어야 하며, 예: key=$(key)&fsize=$(fsize). 자세한 사용법은 Callback Method Data Description 참고.
persistentNotifyUrl 아니오 전처리 결과 알림을 수신할 주소로, 퍼블릭 네트워크 URL이어야 하며 HTTP/1.1 200 OK 응답 가능해야 합니다. 특수문자는 URL 인코딩 필요. 자세한 내용은 Notification Data Content Description 참고.
persistentOps 아니오 파일 업로드 성공 시 전처리 명령 리스트를 실행합니다. 각 명령은 API명세 문자열이며, 여러 명령은 ;로 구분합니다. 자세한 설명은 Instruction Description을 참고하세요.
contentDetect 아니오 파일 업로드 성공 시 콘텐츠 식별 작업 수행. 지원 파라미터:
imagePorn - 이미지 음란물 식별
imageTerror - 이미지 테러 식별
imagePolitical - 정치인 식별
detectNotifyURL 아니오 식별 결과 알림을 받을 퍼블릭 네트워크 URL로, HTTP/1.1 200 OK 응답이 가능해야 합니다.
특수문자는 URL 인코딩 필요.
알림 내용은 Identification Notification Data Content Description 참고.
detectNotifyRule 아니오 식별 결과 알림 규칙 지정.
- all : 모든 이미지
- porn : 음란 이미지
- sexy : 선정적 이미지
- normal : 정상 이미지
- exception : 예외로 판별된 이미지
- terror : 폭력/테러 이미지 (imageTerror 타입에만 유효)
- political : 정치인 이미지 (imagePolitical 타입에만 유효)
여러 파라미터는 세미콜론으로 구분. 예: porn;exception은 음란 또는 예외 이미지만 알림.
separate 아니오 트랜스코딩 완료 알림 방식 선택.
1: 각 변환 명령 실행 시마다 persistentNotifyUrl 알림
0: 모든 명령 처리 후 한 번에 알림(기본값 0)

참고:

  1. persistenOps 필드 설정 시 persistentNotifyUrl 필드도 반드시 함께 설정하세요. 플랫폼은 persistentNotifyUrl로 명령 처리 결과를 알립니다. 자세한 내용은 Notification Data Content Description을 참고하세요.
  2. 업로드 처리 메커니즘을 사용할 때 persistenOps 필드 등록 시, 명령 파라미터 saveas가 꼭 필요하며, 키는 원본 파일과 다를 수 있습니다. 그렇지 않으면 "The Persistent File Already Exists"라는 401 오류가 반환됩니다.
  3. 파일명 지정 우선 순위는 Scope의 key > saveKey > form key > 원본 파일명 순입니다.

​​업로드 자격 증명 생성 알고리즘​

1. 업로드 정책 작성
업로드 파일 정보를 JSON 형식(putPolicy)으로 캡슐화합니다.

{
  "scope": "<bucket string>",
  "deadline": "<deadline string>",
  "returnBody": "<returnBody string>",
  "overwrite": "<overwrite int>",
  "fsizeLimit": "<fsizeLimit long>",
  "returnUrl": "<returnUrl string>"
}

2. URL-Safe Base64 코드로 업로드 정책 인코딩

putPolicy에 URL-Safe Base64 인코딩을 적용하여 encodePutPolicy를 얻습니다.

encodePutPolicy = urlsafe_base64_encode(putPolicy)

3. HMAC-SHA1 서명 생성
SecretKey를 사용해 encodePutPolicy에 대해 HMAC-SHA1 서명을 생성하여 Sign을 얻습니다.

Sign = hmac_sha1(encodePutPolicy, "<SecretKey>")

4. 서명 데이터 URL-Safe Base64 인코딩
서명 데이터 Sign에 URL-Safe Base64 인코딩을 적용해 encodeSign을 얻습니다.

encodeSign = urlsafe_base64_encode(Sign)

5. 업로드 자격 증명 생성
AccessKey, encodedSign, encodePutPolicy를 콜론(:)으로 연결하여 업로드 자격 증명 uploadToken을 생성합니다.

uploadToken = AccessKey:encodedSign:encodePutPolicy
이 문서의 내용이 도움이 되었습니까?
아니오
정상적으로 제출되었습니다.피드백을 주셔서 감사합니다.앞으로도 개선을 위해 노력하겠습니다.