すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:OSS SDK for Androidを使用して進行状況バーを表示する

最終更新日:Feb 22, 2024

進行状況バーを使用して、アップロードまたはダウンロードされているオブジェクトの進行状況を示すことができます。 このトピックでは、GetObject操作を使用して、ダウンロード中のオブジェクトの進行状況バーを表示する方法について説明します。

使用上の注意

  • このトピックのサンプルコードを実行する前に、カスタムドメイン名やSecurity Token Service (STS) などの方法を使用してOSSClientインスタンスを作成する必要があります。 詳細については、「初期化」をご参照ください。

次のサンプルコードは、examplebucketという名前のバケットからダウンロードされているexampleobject.txtという名前のオブジェクトの進行状況を表示する方法の例を示しています。

// ダウンロードリクエストを作成します。 
// バケットの名前とオブジェクトの完全パスを指定します。 この例では、バケット名はexamplebucketで、オブジェクトの完全パスはexampledir/exampleobject.txtです。 バケット名をフルパスに含めないでください。 
GetObjectRequest get = new GetObjectRequest("examplebucket", "exampledir/exampleobject.txt");
// 進行状況バーを表示するように進行状況コールバック関数を設定します。 
get.setProgressListener(new OSSProgressCallback<GetObjectRequest>() {
    @オーバーライド
    public void onProgress(GetObjectRequest request, long currentSize, long totalSize) {
        Log.d("GetObject", "currentSize: " + currentSize + "totalSize: " + totalSize);
    }
});
// オブジェクトを非同期的にダウンロードします。 
OSSAsyncTask task = oss.asyncGetObject(get, new OSSCompletedCallback<GetObjectRequest, GetObjectResult>() {
    @オーバーライド
    public void onSuccess(GetObjectRequest request, GetObjectResult result) {
        Log.d("GetObject", "downLoadSuccess");
    }

    @オーバーライド
    public void onFailure(GetObjectRequest request, 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());
        }
    }
});

参考資料

  • オブジェクトのダウンロード中にプログレスバーを使用する方法の完全なサンプルコードについては、GitHubをご覧ください。

  • OSSClientインスタンスを初期化する方法の詳細については、「初期化」をご参照ください。