Android Upload SDK

최신 업데이트:2023-02-02 14:07:44

클라우드 VoD는 APP에 내장할 수 있는 Android 업로드 SDK를 제공하여 Android 모바일 장치에서 클라우드 VoD로 파일을 더 쉽게 업로드할 수 있도록 합니다.

시작하기

SDK 다운로드
소스 코드 및 설치 가이드

업로드 토큰 및 URL 가져오기

자세한 내용은 비디오 업로드 토큰 가져오기 를 참조하십시오.

초기화

초기화하여 업로드 도메인, 시간 초과, 업로드 동시 및 재시도를 설정합니다.

1. 설정 파일을 수정하여 업로드 도메인과 관리 도메인을 설정합니다.

com.chinanetcenter.wcs.android.Config.java

public static final String PUT_URL = "upload.cloudv.haplat.net";

2. 프로젝트에서 파라미터 설정하기

FileUploader.setUploadUrl("upload.cloudv.haplat.net");    
    ClientConfig config = new ClientConfig();
    
    // Set multi-part upload concurrency at 10,default at 5.
    config.setMaxConcurrentRequest(10);
    FileUploader.setClientConfig(config);

3. 양식 파라미터 설정

import com.chinanetcenter.wcs.android.api.ParamsConf;

conf = new ParamsConf();

conf.fileName = '<Name of the file to be uploaded>';

conf.keyName = <File name to be displayed on console>;

conf.mimeType = '<mimeType>';
FileUploader.setParams(conf);

3. 블록 및 청크 크기 설정

기본 블록 크기는 4M이고 4M의 배수여야 하고 최대 100M을 초과할 수 없습니다. 기본 청크 크기는 4M이고 64K의 배수여야 하고 최대 블록 크기를 초과할 수 없습니다.

FileUploader.setBlockConfigs(8, 512); //Set the block size at 8MB and the chunk size at 512KB

업로드

일반 업로드

/**
 * Example
 */
private void uploadFile(File srcFile) {
/**
         * UPLOADER_TOKEN--upload token, which can be retrieved from Get Upload Token API.
         * srcFile-content to be uploaded
         */
        FileUploader.upload(UPLOADER_TOKEN, srcFile, new FileUploaderListener() {

            /** Callback for upload success **/
            @Override
            public void onSuccess(int status, JSONObject responseJson) {
                Log.d(TAG, "responseJson : " + responseJson.toString());
            }

            /** Callback for upload fail **/
            @Override
            public void onFailure(OperationMessage operationMessage) {
                Log.e(TAG, "errorMessage : " + operationMessage.toString());
            }

            /** Callback for upload progress **/
            @Override
            public void onProgress(int bytesWritten, int totalSize) {
                Log.d(TAG, String.format("Progress %d from %d (%s)", bytesWritten, totalSize, (totalSize > 0) ? ((float) bytesWritten / totalSize) * 100 : -1));
            }
        });
    }

멀티 파트 업로드

모바일로 대용량 파일을 업로드하면 시간이 오래 걸리고 파일 업로드가 이상으로 중단되면 모든 콘텐츠를 다시 업로드해야 하기 때문에 사용자 체험에 영향을 줍니다. 따라서 대용량 파일을 업로드할 때는 멀티 파트 업로드를 사용하는 것을 권장합니다.
멀티 파트 업로드는 큰 파일을 사용자 정의 크기의 여러 블록과 덩어리로 자른 후 이 블록을 병렬로 업로드하는 것입니다. 블록이 업로드되지 않으면 클라이언트는 이 블록만 다시 업로드하면 됩니다.

private static final long DEFAULT_BLOCK_SIZE = 1 * 1024 * 1024;
/**
* context--relevant information
* uploadToken--upload token
* ipaFile--content to be uploaded
* DEFAULT_BLOCK_SIZE--block size
*/
FileUploader.sliceUpload(context, uploadToken, ipaFile, DEFAULT_BLOCK_SIZE, new SliceUploaderListener() {
         
          /** Callback for upload success **/
          @Override
          public void onSliceUploadSucceed(JSONObject jsonObject) {
            Log.d("CNCLog", "slice upload succeeded.");
          }

          /** Callback for upload fail **/
          @Override
          public void onSliceUploadFailured(OperationMessage operationMessage) {
            Log.d("CNCLog", "slice upload failured.");
          }

          /** Callback for upload progress **/
          @Override
          public void onProgress(long uploaded, long total) {
            Log.d("CNCLog", String.format(Locale.CHINA, "uploaded : %s, total : %s", uploaded, total));
          }
});
이 문서의 내용이 도움이 되었습니까?
아니오
정상적으로 제출되었습니다.피드백을 주셔서 감사합니다.앞으로도 개선을 위해 노력하겠습니다.