更新时间:2026-08-14 GMT+08:00
下载时使用crc64校验文件一致性
您可以通过断点续传下载接口获取对象的CRC64校验值,并与本地计算的CRC64校验值比较从而实现一致性校验:
示例代码:断点续传下载
以下代码展示如何在断点续传下载时使用CRC64校验一致性。
import android.util.Log;
import com.obs.services.ObsClient;
import com.obs.services.exception.ObsException;
import com.obs.services.model.DownloadFileRequest;
import com.obs.services.model.DownloadFileResult;
public class DownloadFileWithCRC64Demo {
private static final String TAG = "DownloadFileWithCRC64";
public void downloadFileWithCRC64() {
// 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;本示例以ak和sk保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量ACCESS_KEY_ID和SECRET_ACCESS_KEY_ID。
// 您可以登录访问管理控制台获取访问密钥AK/SK
String ak = System.getenv("ACCESS_KEY_ID");
String sk = System.getenv("SECRET_ACCESS_KEY_ID");
String endPoint = "https://your-endpoint";
// 创建ObsClient实例
ObsClient obsClient = new ObsClient(ak, sk, endPoint);
try {
DownloadFileRequest request = new DownloadFileRequest("examplebucket", "objectname");
// 设置下载到本地的文件路径
request.setDownloadFile("/sdcard/Download/localfile");
// 开启CRC64校验,SDK会自动计算本地文件的CRC64并与服务端返回值比对
request.setNeedCalculateCRC64(true);
DownloadFileResult result = obsClient.downloadFile(request);
Log.i(TAG, "DownloadFile successfully");
Log.i(TAG, "HTTP Code:" + result.getStatusCode());
} catch (ObsException e) {
Log.e(TAG, "DownloadFile failed");
Log.e(TAG, "HTTP Code:" + e.getResponseCode());
Log.e(TAG, "Error Code:" + e.getErrorCode());
Log.e(TAG, "Error Message:" + e.getErrorMessage());
Log.e(TAG, "Request ID:" + e.getErrorRequestId());
Log.e(TAG, "Host ID:" + e.getErrorHostId());
} catch (Exception e) {
Log.e(TAG, "DownloadFile failed");
Log.e(TAG, e.getMessage());
}
}
} 父主题: 校验文件一致性