최신 업데이트:2023-02-01 18:26:06
SDK는 자바 플랫폼만 지원하고 JDK 1.6 이상이 필요합니다. JDK 1.8을 권장합니다.
SDK를 사용하기 전에 클라우드 VoD 서비스를 사용할 수 있는지 확인하고 AccountID와 AccessKey Secret을 확인하십시오.
** CloudvUploadHandler** 클래스를 통해 업로드할 수 있습니다. 다음은 이 수업에 대한 개요입니다:
public String upload(String uploadFilePath, String userId, String secretKey, UploadObserver uploadObserver, UploadFileParam uploadFileParam)
파라미터 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
uploadfilePath | string | 예 | 업로드할 파일의 전체 경로입니다. |
userId | string | 필수 | 계정 ID, 고객 지원에 문의하여 계정 ID를 가져올 수 있습니다. |
secretKey | string | 예 | AccessKey 비밀. 콘솔의 보안 설정 > 접근 제어 > 사용자 정보 관리 > AccessKey 관리 에서 접근 키 암호를 가져올 수 있습니다. |
uploadObserver | uploadObserver | 아니오 | 업로드 시작, 업로드 성공, 업로드 실패 및 업로드 진행률에 대한 콜백 알림을 받는 데 사용되는 인터페이스 uploadObserver를 구현하는 클래스 CustomUploadObserver의 인스턴스입니다. 자세한 내용은 업로드 진행률 알림을 참조하십시오. |
uploadFileParam | uploadFileParam | 아니오 | 다음과 같이 업로드 과정에서 설정에 대한 각종 파라미터를 설정하는 데 사용합니다. |
UploadFileParam에 대한 설명
파라미터 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
categoryNameBeanList | 목록 | 선택적인 | 비디오 카테고리, 상위 카테고리와 하위 카테고리를 한 번에 설정할 수 있습니다. 예를 들어, [{“childName”:“child-category1”,“parentName”:“parent-category1”},{“childName”:“child-category2”,“parentName”:“parent-category2” } ]. |
transCodeCombineName | string | 선택적인 | 트랜스코딩 템플릿. 지정하면 파일이 업로드된 후 트랜스코딩이 자동으로 수행됩니다. |
waterMarkName | string | 선택적인 | 비디오에 추가할 워터마크입니다. 이 파라미터는 transCodeCombineName을 통해 특정 트랜스코딩 템플릿을 지정한 경우에만 유효합니다. transCodeCombineName만 지정하고 waterMarkName을 지정하지 않으면 워터마크도 작동하지 않습니다. |
도메인 | string | 선택적인 | Play 도메인입니다. 도메인을 입력합니다. 비워 두거나 도메인이 존재하지 않으면 주문형 비디오의 기본 도메인이 사용됩니다. |
유형 | 설명 |
---|---|
string | 비디오 ID, 업로드된 비디오의 고유 ID입니다. |
public static void main(String[] args) {
try {
//Set the block size
BaseBlockUtil.BLOCK_SIZE = 32 * BaseBlockUtil.MB;
//Set the chunk size
BaseBlockUtil.CHUNK_SIZE = 4 * BaseBlockUtil.MB;
//Set the number of threads
BaseBlockUtil.THREAD_NUN = 5;
//Set the buffer size
BaseBlockUtil.FILE_BUFFER_SIZE = 2 * BaseBlockUtil.MB;
//Set retry times
BaseBlockUtil.TRIED_TIMES = 5;
CloudvUploadHandler cloudvUploadHandler = new CloudvUploadHandler();
String filePath = "D:\\test.mp4";
String userId = "xxxxxx";
String secretKey = "xxxxxxxxxxxxxxxxxxxx";
String videoId = cloudvUploadHandler.upload(filePath, userId, secretKey, null);
} catch (Exception e) {
e.printStackTrace();
}
}
일반적으로 기본 설정은 만족스러운 업로드 속도를 보장합니다. 업로드 속도 또는 안정성이 요구에 충족하지 못할 경우 업로드 파라미터를 조정하여 추가 설정을 할 수 있습니다. 이는 전 세계적으로 한 번에 적용됩니다.
파라미터 | 설명 | 기본값 | 설정 예 |
---|---|---|---|
BLOCK_SIZE | 멀티파트 업로드의 블록 크기입니다. 값 범위: 4M-32M, 4의 배수입니다. | 4MB | BaseBlockUtil.BLOCK_SIZE = 32 * BaseBlockUtil.MB |
CHUNK_SIZE | 멀티파트 업로드를 위한 청크 크기입니다. 값 범위: 4M-32M, 4의 배수입니다. 이 값은 설정된 블록 크기보다 커서는 안 됩니다. 슬라이스 크기를 적절히 늘리면 업로드 속도를 향상시킬 수 있습니다. | 4MB | BaseBlockUtil.CHUNK_SIZE = 4 * BaseBlockUtil.MB |
THREAD_NUN | 여러 부분으로 구성된 업로드를 사용할 때의 스레드 수, 범위 1-10. | 5 | BaseBlockUtil. THREAD_NUN = 5 |
FILE_BUFFER_SIZE | 업로드할 파일 콘텐츠를 읽기 위한 버퍼 크기입니다. 버퍼 크기를 적절히 늘리면 업로드 속도를 향상시킬 수 있지만 메모리 사용량도 증가할 수 있습니다. 값은 4의 배수여야 합니다. | 4KB | BaseBlockUtil.FILE_BUFFER_SIZE = 1024 * BaseBlockUtil.KB |
TRIED_TIMES | 업로드 실패 시 자동 재시도 횟수입니다. | 3 | BaseBlockUtil.TRIED_TIMES = 5 |
public static void main(String[] args) {
try {
//Set the block size
BaseBlockUtil.BLOCK_SIZE = 32 * BaseBlockUtil.MB;
//Set the chunk size
BaseBlockUtil.CHUNK_SIZE = 4 * BaseBlockUtil.MB;
//Set the number of threads
BaseBlockUtil.THREAD_NUN = 5;
//Set the buffer size
BaseBlockUtil.FILE_BUFFER_SIZE = 2 * BaseBlockUtil.MB;
//Set retry times
BaseBlockUtil.TRIED_TIMES = 5;
CloudvUploadHandler cloudvUploadHandler = new CloudvUploadHandler();
String filePath = "D:\\test.mp4";
String userId = "xxxxxx";
String secretKey = "xxxxxxxxxxxxxxxxxxxx";
String videoId = cloudvUploadHandler.upload(filePath, userId, secretKey, null);
} catch (Exception e) {
e.printStackTrace();
}
}
업로드 시작, 업로드 진행률, 업로드 성공 및 실패의 업로드 진행률 가져오기를 포함하여 업로드 진행률 알림을 사용자 정의할 수 있습니다.
public interface UploadObserver {
/**
* Call this function before upload
* @param id
* @param filePath
*/
void onBegin(String id, String filePath);
/**
* Call this function after upload success
* @param result
*/
void onSuccess(UploadResult result);
/**
* Call this function when there is an error
* @param ex
*/
void onFail(Exception ex);
/**
* Callback after multi-part upload
*
* @param uploaded
* @param total
*/
void onProcess(long uploaded, long total);
}
UploadObserver 의 구현 방법 :
public class CustomUploadObserver implements UploadObserver {
private static final Logger LOGGER = LoggerFactory.getLogger(CustomUploadObserver.class);
private String videoId;
private String filePath;
@Override
public void onBegin(String videoId, String filePath) {
this.videoId = videoId;
this.filePath = filePath;
LOGGER.info("videoId:{}, filePath:{}, Start upload", videoId, filePath);
}
@Override
public void onSuccess(UploadResult result) {
LOGGER.info("videoId:{}, filePath:{}, Success upload", videoId, filePath);
}
@Override
public void onFail(Exception ex) {
String message = "videoId:" + videoId + "filePath:" + filePath + ",Error occurs during upload";
LOGGER.error("message:{}, error:", message, ex);
throw new RuntimeException(message, ex);
}
@Override
public void onProcess(long uploaded, long total) {
LOGGER.info("videoId:{},filePath:{}, Upload progress:{},", videoId, filePath, uploaded * 100 / total + "%");
}
}
호출 방법:
public static void main(String[] args) {
try {
CloudvUploadHandler cloudvUploadHandler = new CloudvUploadHandler();
String filePath = "D:\\test.mp4";
String userId = "xxxxxx";
String secretKey = "xxxxxxxxxxxxxxxxxxxx";
CustomUploadObserver uploadObserver = new CustomUploadObserver();
String videoId = cloudvUploadHandler.upload(filePath, userId, secretKey, uploadObserver);
} catch (Exception e) {
e.printStackTrace();
}
}