GuidesAPI GuideChangelog
Log In
API Guide

클립 영상 업로드

클립 영상 업로드 URL 발행 API를 통해 받은 uploadUrl로 제공하는 예시코드를 참고하여 업로드를 수행하면 됩니다.

주의 : 클립 영상 업로드 URL 발행 API에 요청값으로 전달 한 fileSize와 업로드 하고자 한 파일 사이즈와 반드시 일치하여야 합니다.


  • 예시코드
curl -X PUT \
  -H "Content-Type: video/mp4" \
  --data-binary "@/Users/test/videos/original.mp4" \
  "https://s3.ap-northeast-2.amazonaws.com/mobidoo-media-prod/partners/partnerUniqueId/clips/123/original.mp4?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIAXXXXX%2F20250124%2Fap-northeast-2%2Fs3%2Faws4_request&X-Amz-Date=20250124T023014Z&X-Amz-Expires=900&X-Amz-SignedHeaders=host&X-Amz-Signature=0f6e9a7d0e2f7c1d0b4b3d5f0b2c9e4d8a1f7a2e6b3c9d4e1a0b5c7d9e2f3a4b"
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.nio.file.Path;

public class PresignedPutUpload {
    public static void main(String[] args) throws Exception {
        String url = "PRESIGNED_URL_HERE";
        Path file = Path.of("/Users/test/videos/original.mp4");

        HttpClient client = HttpClient.newHttpClient();

        HttpRequest req = HttpRequest.newBuilder()
                .uri(URI.create(url))
                .header("Content-Type", "video/mp4") // presign에 묶였으면 동일
                .PUT(HttpRequest.BodyPublishers.ofFile(file))
                .build();

        HttpResponse<String> res = client.send(req, HttpResponse.BodyHandlers.ofString());

        if (res.statusCode() / 100 != 2) {
            throw new RuntimeException("Upload failed: " + res.statusCode() + " " + res.body());
        }

        System.out.println("Upload success");
    }
}
import requests

url = "PRESIGNED_URL_HERE"
file_path = "/Users/test/videos/original.mp4"

with open(file_path, "rb") as f:
    r = requests.put(
        url,
        data=f,
        headers={"Content-Type": "video/mp4"},  # presign에 묶였으면 동일
    )

if r.status_code // 100 != 2:
    raise Exception(f"Upload failed: {r.status_code} {r.text}")

print("Upload success")
import fs from "fs";

const url = "PRESIGNED_URL_HERE";
const filePath = "/Users/test/videos/original.mp4";

const stream = fs.createReadStream(filePath);

const res = await fetch(url, {
  method: "PUT",
  headers: {
    "Content-Type": "video/mp4", // presign에 content-type이 묶여있다면 반드시 동일
  },
  body: stream,
});

if (!res.ok) {
  const text = await res.text().catch(() => "");
  throw new Error(`Upload failed: ${res.status} ${text}`);
}

console.log("Upload success");
🏠 소스라이브 🎬 소스클립 🔗 소스링크 📢 소스애드
🧩 API 가이드
🆕 최근 업데이트
💬 도움이 더 필요하신가요?
메일로 문의 카카오톡 채널로 문의