クライアントがネットワークを介してリソースをダウンロードすると、ネットワークの変動などの理由でダウンロードが中断されます。 この場合、再開可能なダウンロードを実行して、未完成部品のダウンロードを続行できます。 この方法は時間とトラフィックを節約します。
使用上の注意
このトピックのサンプルコードを実行する前に、カスタムドメイン名やSecurity Token Service (STS) などの方法を使用してOSSClientインスタンスを作成する必要があります。 詳細については、「初期化」をご参照ください。
例
次のサンプルコードは、再開可能ダウンロードの実行方法の例を示しています。
// バケットの名前を指定します。 例: examplebucket.
// オブジェクトのフルパスを指定します。 バケット名をフルパスに含めないでください。 例: exampledir/exampleobject.txt。
String objectKey = "exampledir/exampleobject.txt";
// ダウンロードしたオブジェクトのフルパスを指定します。
文字列localFile = "/storage/emulated/0/oss/examplefile.txt";
ResumableDownloadRequestリクエスト=新しいResumableDownloadRequest(bucketName, objectKey, localFile);
// パーツサイズを指定します。 (単位:KB) 部品のデフォルトサイズは256 KBです。 特別な要件がない場合は、デフォルト値を使用できます。
request.setPartSize(256*1024);
// 再開可能ダウンロードを開始します。
request.setEnableCheckPoint(true);
// チェックポイントファイルのフルパスを指定します。 オブジェクトのダウンロードが中断されたためにチェックポイントファイルが生成された後、オブジェクトのダウンロードを続行する場合にのみ、チェックポイントファイルのフルパスを指定する必要があります。
request.setCheckPointFilePath("/storage/emulated/0/oss");
request.setProgressListener(new OSSProgressCallback() {
@オーバーライド
public void onProgress (オブジェクトリクエスト, long currentSize, long totalSize) {
Log.d("ResumableDownload" 、"currentSize: " + currentSize + "totalSize: " + totalSize);
}
});
OSSAsyncTask task = oss.asyncResumableDownload(request, new OSSCompletedCallback<ResumableDownloadRequest, ResumableDownloadResult>() {
@オーバーライド
public void onSuccess(ResumableDownloadRequestリクエスト、ResumableDownloadResult結果) {
Log.d("ResumableDownload" 、"DownloadSuccess");
}
@オーバーライド
public void onFailure(ResumableDownloadRequestリクエスト, ClientException clientException, ServiceException serviceException) {
// リクエスト例外を処理します。
if (clientException != null) {
// ネットワークエラーなどのクライアント側の例外を処理します。
clientException.printStackTrace();
}
if (serviceException != null) {
// サーバー側の例外を処理します。
Log.e("ErrorCode", serviceException.getErrorCode());
Log.e("RequestId", serviceException.getRequestId());
Log.e("HostId", serviceException.getHostId());
Log.e("RawMessage", serviceException.getRawMessage());
}
}
});