워터마킹
워터마킹 API를 사용하면 디지털 콘텐츠에 보이지 않는 워터마크를 삽입할 수 있습니다. 이를 통해 콘텐츠의 출처를 증명하고 무단 사용을 감지할 수 있습니다. 이 페이지에서는 워터마킹 요청 방법과 결과를 확인하는 방법에 대해 설명합니다.
워터마킹 프로세스
APoT에서 콘텐츠에 워터마크를 적용하는 전체 프로세스는 다음과 같습니다:
- 파일 업로드 링크 생성을 사용하여 업로드 URL을 받습니다.
- 받은 URL로 파일을 업로드합니다.
- 워터마킹 API를 호출하여 워터마크 작업을 시작합니다.
- 워터마킹 상태 확인 API를 사용하여 작업 상태와 결과를 확인합니다.
워터마킹 응답 모델
워터마킹 API 응답은 다음과 같은 속성을 포함합니다:
- Name
status- Type
- string
- Description
워터마킹 요청의 상태입니다. 가능한 값: 'pending', 'processing', 'success', 'failed'
- Name
requestId- Type
- string
- Description
워터마킹 요청의 고유 식별자입니다.
- Name
fileId- Type
- string
- Description
워터마킹 대상 파일의 고유 식별자입니다.
- Name
watermarkedUrl- Type
- string
- Description
워터마크가 적용된 파일을 다운로드할 수 있는 URL입니다. 성공 상태일 때만 제공됩니다.
- Name
expiredAt- Type
- integer
- Description
워터마크가 적용된 파일 URL의 만료 시간(유닉스 타임스탬프)입니다.
- Name
error- Type
- string
- Description
워터마킹이 실패한 경우 오류 메시지입니다.
워터마킹 요청하기
이 엔드포인트는 업로드된 파일에 워터마크 적용을 요청합니다. 요청은 비동기적으로 처리되므로 즉시 결과를 반환하지 않습니다.
필수 매개변수
- Name
fileId- Type
- string
- Description
워터마킹할 파일의 고유 식별자입니다. 파일 업로드 API에서 반환된 ID를 사용합니다.
선택적 매개변수
- Name
options- Type
- object
- Description
워터마킹 옵션을 지정합니다.
- Name
options.watermarkType- Type
- array
- Description
적용할 워터마크 유형을 지정합니다. 기본값: ["saforus", "c2pa"]
- Name
options.data- Type
- object
- Description
워터마크에 포함할 커스텀 데이터입니다.
- Name
options.mintNft- Type
- boolean
- Description
NFT 민팅 여부를 지정합니다. 기본값: false
- Name
options.storeIpfs- Type
- boolean
- Description
IPFS에 저장 여부를 지정합니다. 기본값: true
요청
curl -X POST https://api.apot.io/watermark \
-H "Authorization: Bearer {token}" \
-H "Content-Type: application/json" \
-d '{
"fileId": "2ca0b132-cf83-4158-9353-121ff62a351e",
"options": {
"watermarkType": ["saforus", "c2pa"],
"data": {
"author": "홍길동",
"creationDate": "2023-03-15",
"description": "예시 이미지입니다."
},
"mintNft": true,
"storeIpfs": true
}
}'
응답
{
"status": "pending",
"requestId": "f2be4d80-5c4f-42a5-a70b-8e7251cfa8e2",
"fileId": "2ca0b132-cf83-4158-9353-121ff62a351e"
}
워터마킹 상태 확인하기
이 엔드포인트는 이전에 요청한 워터마킹 작업의 상태를 확인합니다. 워터마킹 작업이 완료되면 워터마크가 적용된 파일을 다운로드할 수 있는 URL을 반환합니다.
경로 매개변수
- Name
requestId- Type
- string
- Description
확인할 워터마킹 요청의 고유 식별자입니다.
요청
curl -G https://api.apot.io/watermark/f2be4d80-5c4f-42a5-a70b-8e7251cfa8e2 \
-H "Authorization: Bearer {token}"
응답 (성공)
{
"status": "success",
"requestId": "f2be4d80-5c4f-42a5-a70b-8e7251cfa8e2",
"fileId": "2ca0b132-cf83-4158-9353-121ff62a351e",
"watermarkedUrl": "https://storage.apot.io/download/2ca0b132-cf83-4158-9353-121ff62a351e?signature=...",
"expiredAt": 1679645467
}
응답 (처리 중)
{
"status": "processing",
"requestId": "f2be4d80-5c4f-42a5-a70b-8e7251cfa8e2",
"fileId": "2ca0b132-cf83-4158-9353-121ff62a351e"
}
응답 (실패)
{
"status": "failed",
"requestId": "f2be4d80-5c4f-42a5-a70b-8e7251cfa8e2",
"fileId": "2ca0b132-cf83-4158-9353-121ff62a351e",
"error": "지원되지 않는 파일 형식입니다."
}
워터마크 유형
APoT는 다양한 워터마킹 기술을 지원합니다:
-
Saforus 워터마크: 특수 알고리즘을 사용하여 이미지에 보이지 않는 워터마크를 삽입합니다. 이 워터마크는 이미지 품질에 영향을 미치지 않으며 다양한 변환(크기 조정, 압축 등)에도 강인합니다.
-
C2PA 메타데이터: Content Authenticity Initiative(CAI)의 표준을 구현한 C2PA(Coalition for Content Provenance and Authenticity)는 파일의 출처와 편집 이력을 추적할 수 있는 메타데이터를 추가합니다.
NFT 민팅 및 IPFS 저장
APoT는 NFT 민팅과 IPFS 저장 옵션을 제공합니다:
-
NFT 민팅: 워터마크가 적용된 콘텐츠의 메타데이터를 블록체인에 기록하여 소유권을 증명합니다. 이 옵션을 선택하면 OpenSea와 같은 NFT 마켓플레이스에서 콘텐츠를 거래할 수 있습니다.
-
IPFS 저장: 콘텐츠의 메타데이터를 분산형 파일 시스템인 IPFS에 저장합니다. 이는 파일의 무결성과 가용성을 보장합니다.
다음 단계
워터마크가 적용된 콘텐츠가 있다면 검증 API를 사용하여 워터마크를 검증할 수 있습니다.
