자산 사용 가이드

*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.

Open Cloud의 자산 API를 사용하면 Studio에 자산을 수동으로 가져오는 대신 단일 HTTP 요청으로 자산을 업로드하고 업데이트할 수 있습니다. 이 API는 다음을 지원합니다:

  • 새로운 자산 업로드.
  • 버전 관리를 통해 기존 자산 업데이트.
  • 설명, 표시 이름, 아이콘 및 미리보기를 포함한 자산 메타데이터 업데이트.
  • 특정 이전 버전으로 롤백하는 등 자산 버전 관리.
  • 메타데이터, 버전 및 진행 중인 업데이트 작업을 포함한 자산의 기존 정보 확인.

지원되는 자산 유형 및 제한 사항

새 자산을 생성하거나 기존 자산의 콘텐츠를 업데이트하지 않는 엔드포인트에는 제한 사항이 없습니다. 그러나 자산 생성자산 업데이트 엔드포인트에서 제공하는 자산 콘텐츠 업로드 기능은 제한된 유형의 자산만 지원합니다. 각 호출마다 최대 20MB의 파일 크기로 하나의 자산만 생성하거나 업데이트할 수 있습니다. 다음 제한 사항이 적용됩니다:

자산 유형형식콘텐츠 유형제한 사항
애니메이션
  • .rbxm
  • .rbxmx
  • model/x-rbxm
  • model/x-rbxm
  • Roblox Studio 외부에서 편집한 .rbxm 또는 .rbxmx 파일은 업로드되지 않거나 작동하지 않을 수 있습니다.
오디오
  • .mp3
  • .ogg
  • .wav
  • .flac
  • audio/mpeg
  • audio/ogg
  • audio/wav
  • audio/flac
  • 최대 7분의 지속 시간.
  • ID 인증을 받은 경우 한 달에 최대 100개 업로드.
  • ID 인증을 받지 않은 경우 한 달에 최대 10개 업로드.
  • 업데이트할 수 없음.
데칼, 이미지
  • .png
  • .jpeg
  • .bmp
  • .tga
  • image/png
  • image/jpeg
  • image/bmp
  • image/tga
  • 8000x8000 픽셀보다 작아야 합니다.
  • 업데이트할 수 없음.
메쉬

    Roblox 전용

  • model/x-file-mesh-data
  • 자산 배포 API에서 다운로드한 콘텐츠만 허용됩니다. 메쉬를 다운로드하고 재업로드하려는 경우 가져오기 도구를 사용하여 메쉬를 가져오십시오.
  • 업데이트할 수 없음.
모델
  • .fbx
  • .gltf
  • .glb
  • .rbxm
  • .rbxmx
  • model/fbx
  • model/gltf+json
  • model/gltf-binary
  • model/x-rbxm
  • model/x-rbxm
  • 하나 이상의 MeshPart 객체를 포함하는 Model 컨테이너로 사용자 지정 3D 모델을 가져옵니다.
    • 사용 사례에 따라 가져오기 도구를 사용하여 사용자 지정 3D 모델을 수동으로 업로드하는 것을 고려하십시오.
    • 가져오기 도구는 3D 미리 보기, 다양한 오류 검사 및 많은 사용자 지정 가져오기 설정을 제공합니다.
  • Roblox Studio 외부에서 편집한 .rbxm 또는 .rbxmx 파일은 업로드되지 않거나 작동하지 않을 수 있습니다.
  • 패키지로 업로드됩니다.
비디오
  • .mp4
  • .mov
  • video/mp4
  • video/mov
  • 최대 5분의 지속 시간.
  • 최대 4096x2160 해상도.
  • 최대 3.75 GB.
  • 13세 이상이고 ID 인증을 받은 경우 하루에 최대 20개의 업로드.
  • 업데이트할 수 없음.

보안 권한

API는 API 키 인증을 통한 1차 사용과 OAuth 2 애플리케이션을 통한 3차 사용을 모두 지원합니다. 각 방식에는 서로 다른 보안 권한 설정이 필요합니다.

API 키

자신의 스크립트나 도구에서 API를 사용하려면 인증 및 보안을 위해 API 키를 생성해야 합니다.

API 키를 생성할 때 다음 권한을 추가해야 합니다:

  1. 액세스 권한자산 추가.
  2. 호출하려는 엔드포인트의 필요 범위에 따라 선택한 게임에 읽기쓰기 작업 권한 추가.

API 키를 수신하면 x-api-key 요청 헤더에 복사합니다. 모든 엔드포인트에 x-api-key 요청 헤더가 필요합니다.

예시 API 요청 헤더

--header 'x-api-key: ${ApiKey}' \

OAuth 2.0 앱

타사 OAuth 2.0 애플리케이션에 API를 사용하려면 앱 등록asset:readasset:write 권한 범위를 추가하세요. 사용하려는 엔드포인트의 요구 사항에 따라 이러한 범위를 선택하세요.

새로운 자산 생성

HTTP 요청으로 새로운 자산을 업로드하려면:

  1. 자산 생성 엔드포인트의 x-api-key 요청 헤더에 API 키를 복사합니다.

  2. 요청에서:

    1. 대상 자산 유형을 지정합니다.
    2. 자산 이름 및 설명을 추가합니다.
    3. 생성자 정보를 추가합니다.
      • 자신을 대신하여 자산을 생성하려면 사용자 ID를 추가합니다. Roblox 프로필 URL에서 사용자 ID를 찾을 수 있습니다. 예를 들어, https://www.roblox.com/users/1234567/profile, 고유 사용자 ID는 1234567입니다.
      • 그룹 자산으로 자산을 생성하려면 그룹 ID를 추가합니다. 그룹 페이지의 URL에서 그룹 ID를 찾을 수 있습니다. 예를 들어, https://www.roblox.com/groups/7654321/example-group#!/, 그룹 ID는 7654321입니다.
    4. 자산의 파일 경로 및 콘텐츠 유형을 추가합니다.
    자산 생성 요청 예시

    curl --location 'https://apis.roblox.com/assets/v1/assets' \
    --header 'x-api-key: ${ApiKey}' \
    --form 'request="{
    \"assetType\": \"Model\",
    \"displayName\": \"Name\",
    \"description\": \"This is a description\",
    \"creationContext\": {
    \"creator\": {
    \"userId\": \"${userId}\" # 그룹 자산 생성을 위해 groupId 사용
    }
    }
    }"' \
    --form 'fileContent=@"/filepath/model.fbx";type=model/fbx'

기존 자산 업데이트

HTTP 요청으로 기존 자산을 업데이트하려면:

  1. 자산 업데이트 엔드포인트의 x-api-key 요청 헤더에 API 키를 복사합니다.
  2. 요청에서 자산 유형 및 자산 ID를 추가합니다. 자산 ID를 복사하려면:
    1. 크리에이터 대시보드생성 페이지로 이동합니다.
    2. 개발 항목 범주를 선택합니다.
    3. 자산 범주를 선택하고 대상 자산을 찾습니다.
    4. 대상 자산의 썸네일 위에 마우스를 올리고 버튼을 클릭하여 옵션 목록을 표시한 다음, 목록에서 자산 ID 복사를 선택합니다.
자산 콘텐츠 업데이트 요청 예시

curl --location --request PATCH 'https://apis.roblox.com/assets/v1/assets/{assetId}' \
--header 'x-api-key: {apiKey}' \
--form 'request={
\"assetType\": \"{assetType}\",
\"assetId\": \"{assetId}\",
\"creationContext\": {
\"creator\": {
\"userId\": {userId}
},
\"expectedPrice\":{expectedPrice}
},
}' \
--form 'fileContent=@"{file-path}"'

자산 작업 상태 검색

새 자산 생성 또는 기존 자산 업데이트 요청이 성공하면 { "path": "operations/${operationId}" } 형식의 작업 ID가 반환됩니다. 이 ID를 사용하여 다음 단계와 같이 업로드 상태와 결과를 확인할 수 있습니다:

  1. 작업 가져오기 메서드의 x-api-key 요청 헤더에 API 키를 복사하고 요청을 전송합니다. 다음 코드 샘플과 같이:

    작업 가져오기 요청 예시

    curl --location 'https://apis.roblox.com/assets/v1/operations/{operationId}' \
    --header 'x-api-key: {$ApiKey}'
  2. 요청이 성공하면 Operation 객체가 반환되며, 업로드된 자산 정보가 포함된 response 또는 자산 업로드 실패 이유를 설명하는 status가 포함될 수 있습니다. 다음 코드 샘플과 같습니다:

    작업 가져오기 응답 예시

    {
    "path": "operations/{operationId}",
    "done": true,
    "response": {
    "@type": "type.googleapis.com/roblox.open_cloud.assets.v1.Asset",
    "path": "assets/2205400862",
    "revisionId": "1",
    "revisionCreateTime": "2023-03-02T22:27:04.062164400Z",
    "assetId": "2205400862",
    "displayName": "Name",
    "description": "This is a description",
    "assetType": "ASSET_TYPE_DECAL",
    "creationContext": {
    "creator": {
    "userId": "11112938575"
    }
    },
    "moderationResult": {
    "moderationState": "MODERATION_STATE_APPROVED"
    }
    }
    }
  3. (선택 사항) Roblox 계정에서 생성된 자산을 확인합니다.

    1. 로블록스 계정인벤토리 페이지로 이동합니다.
    2. 확인하려는 자산의 범주를 선택합니다.
    3. 대상 자산을 찾아 썸네일을 클릭하여 자산을 봅니다.

자산 API를 OAuth 2.0 앱에 추가

사용자가 로블록스에 자산을 업로드하고 업데이트할 수 있도록 자산 API를 지원하는 OAuth 2.0 애플리케이션을 생성할 수 있습니다.

애플리케이션에서 자산 API를 사용하고 사용자로부터 권한을 요청하려면 다음 설정을 수행하십시오:

  1. 애플리케이션 등록권한에서 asset:readasset:write 범위를 선택합니다.

  2. 사용자 인증 흐름 구현 시, 사용자를 애플리케이션으로 되돌리는 인증 URL의 범위 매개변수로 asset:readasset:write를 포함합니다. 다음 예시와 같습니다:


    https://apis.roblox.com/oauth/v1/authorize?client_id=819547628404595165403873012&redirect_uri=https://my-app.com/redirect&scope=asset:read+asset:write&response_type=Code&prompts=login+consent&nonce=12345&state=6789
  3. 요청을 보낼 때, 요청 URI의 폼 데이터로 자산 콘텐츠를 만들거나 업데이트하는 접근 토큰을 인증 헤더에 포함합니다. 다음 예시는 새로운 자산을 업로드하기 위한 샘플 요청을 보여줍니다:

    예시 요청

    curl --location --request POST 'https://apis.roblox.com/assets/v1/assets' \
    --header 'Authorization: Bearer <access_token>' \
    --header 'Content-Type: application/json' \
    --form 'request="{
    \"assetType\": \"Decal\",
    \"displayName\": \"DecalDemo123\",
    \"description\": \"This is a description\",
    \"creationContext\": {
    \"creator\": {
    \"userId\": \"<user_id>\"
    }
    }
    }"' \
    --form 'fileContent=@"/filepath/p1.png"'
©2026 Roblox Corporation. Roblox 및 Roblox 로고, 'Powering Imagination'은 미국 및 기타 국가 내 당사의 등록 및 미등록 상표입니다.