// 1. 初始化 TransferService。在相同配置的情况下,您应该复用同一个 TransferServiceTransferConfig transferConfig = new TransferConfig.Builder().build();TransferService transferService = new TransferService(cosXmlService, transferConfig);// 2. 初始化 PutObjectRequest// 存储桶名称,由bucketname-appid 组成,appid必须填入,可以在COS控制台查看存储桶名称。 https://console.tencentcloud.com/cos5/bucketString bucket = "examplebucket-1250000000";String cosPath = "exampleobject"; //对象在存储桶中的位置标识符,即称对象键String srcPath = "examplefilepath"; //本地文件的绝对路径PutObjectRequest putObjectRequest = new PutObjectRequest(bucket,cosPath, srcPath);// 3. 调用 upload 方法上传文件final COSUploadTask uploadTask = transferService.upload(putObjectRequest);uploadTask.setCosXmlResultListener(new CosXmlResultListener() {@Overridepublic void onSuccess(CosXmlRequest request, CosXmlResult result) {// 上传成功,可以在这里拿到文件的 CRC64String crc64 = result.getHeader("x-cos-hash-crc64ecma");}// 如果您使用 kotlin 语言来调用,请注意回调方法中的异常是可空的,否则不会回调 onFail 方法,即:// clientException 的类型为 CosXmlClientException?,serviceException 的类型为 CosXmlServiceException?@Overridepublic void onFail(CosXmlRequest request,@Nullable CosXmlClientException clientException,@Nullable CosXmlServiceException serviceException) {if (clientException != null) {clientException.printStackTrace();} else {serviceException.printStackTrace();}}});
// 1. 初始化 TransferService。在相同配置的情况下,您应该复用同一个 TransferServiceTransferConfig transferConfig = new TransferConfig.Builder().build();TransferService transferService = new TransferService(cosXmlService, transferConfig);// 2. 初始化 GetObjectRequest// 存储桶名称,由bucketname-appid 组成,appid必须填入,可以在COS控制台查看存储桶名称。 https://console.tencentcloud.com/cos5/bucketString bucket = "examplebucket-1250000000";String cosPath = "exampleobject"; //对象在存储桶中的位置标识符,即称对象键String savePathDir = context.getCacheDir().toString(); //本地目录路径//本地保存的文件名,若不填(null),则与 COS 上的文件名一样String savedFileName = "exampleobject";GetObjectRequest getObjectRequest = new GetObjectRequest(bucket,cosPath, savePathDir, savedFileName);// 3. 调用 download 方法下载文件final COSDownloadTask downloadTask = transferService.download(getObjectRequest);downloadTask.setCosXmlResultListener(new CosXmlResultListener() {@Overridepublic void onSuccess(CosXmlRequest request, CosXmlResult result) {// 下载成功,可以在这里拿到 COS 上的文件 CRC64String cosCRC64 = result.getHeader("x-cos-hash-crc64ecma");}// 如果您使用 kotlin 语言来调用,请注意回调方法中的异常是可空的,否则不会回调 onFail 方法,即:// clientException 的类型为 CosXmlClientException?,serviceException 的类型为 CosXmlServiceException?@Overridepublic void onFail(CosXmlRequest request,@Nullable CosXmlClientException clientException,@Nullable CosXmlServiceException serviceException) {if (clientException != null) {clientException.printStackTrace();} else {serviceException.printStackTrace();}}});
TransferService
进行上传和下载时,SDK 默认进行了数据校验的工作,如果您仍然希望能够自己进行 CRC64 校验,可以参考如下代码。// 1. 参考以上上传或者下载请求示例代码获取 COS 上文件的 CRC64 值String cosCRC64 = "examplecoscrc64";// 2. 计算本地文件的 CRC64File localFile = new File("examplefilepath");String localCRC64 = DigestUtils.getCRC64String(localFile);// 3. 比对 localCRC64 和 cosCRC64 是否一致if (localCRC64.equals(cosCRC64)) {// CRC64 对比正确}
本页内容是否解决了您的问题?