워터마킹

워터마킹 API를 사용하면 디지털 콘텐츠에 보이지 않는 워터마크를 삽입할 수 있습니다. 이를 통해 콘텐츠의 출처를 증명하고 무단 사용을 감지할 수 있습니다. 이 페이지에서는 워터마킹 요청 방법과 결과를 확인하는 방법에 대해 설명합니다.

워터마킹 프로세스

APoT에서 콘텐츠에 워터마크를 적용하는 전체 프로세스는 다음과 같습니다:

  1. 파일 업로드 링크 생성을 사용하여 업로드 URL을 받습니다.
  2. 받은 URL로 파일을 업로드합니다.
  3. 워터마킹 API를 호출하여 워터마크 작업을 시작합니다.
  4. 워터마킹 상태 확인 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

    워터마킹이 실패한 경우 오류 메시지입니다.


POST/watermark

워터마킹 요청하기

이 엔드포인트는 업로드된 파일에 워터마크 적용을 요청합니다. 요청은 비동기적으로 처리되므로 즉시 결과를 반환하지 않습니다.

필수 매개변수

  • 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

요청

POST
/watermark
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"
}

GET/watermark/[requestId]

워터마킹 상태 확인하기

이 엔드포인트는 이전에 요청한 워터마킹 작업의 상태를 확인합니다. 워터마킹 작업이 완료되면 워터마크가 적용된 파일을 다운로드할 수 있는 URL을 반환합니다.

경로 매개변수

  • Name
    requestId
    Type
    string
    Description

    확인할 워터마킹 요청의 고유 식별자입니다.

요청

GET
/watermark/[requestId]
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는 다양한 워터마킹 기술을 지원합니다:

  1. Saforus 워터마크: 특수 알고리즘을 사용하여 이미지에 보이지 않는 워터마크를 삽입합니다. 이 워터마크는 이미지 품질에 영향을 미치지 않으며 다양한 변환(크기 조정, 압축 등)에도 강인합니다.

  2. C2PA 메타데이터: Content Authenticity Initiative(CAI)의 표준을 구현한 C2PA(Coalition for Content Provenance and Authenticity)는 파일의 출처와 편집 이력을 추적할 수 있는 메타데이터를 추가합니다.

NFT 민팅 및 IPFS 저장

APoT는 NFT 민팅과 IPFS 저장 옵션을 제공합니다:

  1. NFT 민팅: 워터마크가 적용된 콘텐츠의 메타데이터를 블록체인에 기록하여 소유권을 증명합니다. 이 옵션을 선택하면 OpenSea와 같은 NFT 마켓플레이스에서 콘텐츠를 거래할 수 있습니다.

  2. IPFS 저장: 콘텐츠의 메타데이터를 분산형 파일 시스템인 IPFS에 저장합니다. 이는 파일의 무결성과 가용성을 보장합니다.

다음 단계

워터마크가 적용된 콘텐츠가 있다면 검증 API를 사용하여 워터마크를 검증할 수 있습니다.

Was this page helpful?