public DownloadFileResult downloadFile(DownloadFileRequest downloadFileRequest) throws Throwable { assertParameterNotNull(downloadFileRequest, "downloadFileRequest"); String bucketName = downloadFileRequest.getBucketName(); String key = downloadFileRequest.getKey(); assertParameterNotNull(bucketName, "bucketName"); assertParameterNotNull(key, "key"); ensureBucketNameValid(bucketName); ensureObjectKeyValid(key); // 没有指定本地文件,使用key作为本地文件名称 if (downloadFileRequest.getDownloadFile() == null) { downloadFileRequest.setDownloadFile(downloadFileRequest.getKey()); } // 开启断点续传,没有指定checkpoint文件,使用默认值 if (downloadFileRequest.isEnableCheckpoint()) { if (downloadFileRequest.getCheckpointFile() == null || downloadFileRequest.getCheckpointFile().isEmpty()) { downloadFileRequest.setCheckpointFile(downloadFileRequest.getDownloadFile() + ".dcp"); } } return downloadFileWithCheckpoint(downloadFileRequest); }