use of com.mizhousoft.tencent.oss.COSProfile in project cloud-sdk by mizhousoft.
the class QCloudVODServiceImpl method uploadVideo.
/**
* {@inheritDoc}
*/
@Override
public String uploadVideo(File mediaFile, File coverFile) throws CloudSDKException {
MediaTypeEnum mediaType = getMediaType(mediaFile);
CoverTypeEnum coverType = getCoverType(coverFile);
COSObjectStorageServiceImpl objectStorageService = null;
String bucket = null;
String coverObjectName = null;
String mediaObjectName = null;
try {
ApplyUploadRequest req = new ApplyUploadRequest();
req.setMediaType(mediaType.getValue());
req.setCoverType(coverType.getValue());
ApplyUploadResponse applyResponse = vodClient.ApplyUpload(req);
COSProfile config = new COSProfile();
config.setAccessKey(applyResponse.getTempCertificate().getSecretId());
config.setSecretKey(applyResponse.getTempCertificate().getSecretKey());
config.setSessionToken(applyResponse.getTempCertificate().getToken());
config.setRegion(applyResponse.getStorageRegion());
objectStorageService = new COSObjectStorageServiceImpl();
objectStorageService.init(config);
bucket = applyResponse.getStorageBucket();
objectStorageService.putObject(bucket, applyResponse.getCoverStoragePath(), coverFile);
coverObjectName = applyResponse.getCoverStoragePath();
objectStorageService.putObject(bucket, applyResponse.getMediaStoragePath(), mediaFile);
mediaObjectName = applyResponse.getMediaStoragePath();
CommitUploadRequest commitRequest = new CommitUploadRequest();
commitRequest.setVodSessionKey(applyResponse.getVodSessionKey());
CommitUploadResponse commitResponse = vodClient.CommitUpload(commitRequest);
// 上传成功后要置为NULL
coverObjectName = null;
mediaObjectName = null;
return commitResponse.getFileId();
} catch (TencentCloudSDKException e) {
throw new CloudSDKException(e.getErrorCode(), e.getMessage(), e);
} finally {
cleanUploadFailedFile(bucket, coverObjectName, objectStorageService);
cleanUploadFailedFile(bucket, mediaObjectName, objectStorageService);
if (null != objectStorageService) {
objectStorageService.destory();
}
}
}
Aggregations