최신 업데이트:2023-02-02 14:07:44
클라우드 VoD는 APP에 내장할 수 있는 Android 업로드 SDK를 제공하여 Android 모바일 장치에서 클라우드 VoD로 파일을 더 쉽게 업로드할 수 있도록 합니다.
자세한 내용은 비디오 업로드 토큰 가져오기 를 참조하십시오.
초기화하여 업로드 도메인, 시간 초과, 업로드 동시 및 재시도를 설정합니다.
com.chinanetcenter.wcs.android.Config.java
public static final String PUT_URL = "upload.cloudv.haplat.net";
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);
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);
기본 블록 크기는 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));
}
});