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

Object Storage Service:OSS SDK for Androidを使用した範囲ダウンロードの実行

最終更新日:Feb 23, 2024

範囲ダウンロードを実行して、オブジェクトの特定の範囲のデータをダウンロードできます。

使用上の注意

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

次のサンプルコードは、範囲ダウンロードを実行してオブジェクトの特定の範囲のデータをダウンロードする方法の例を示しています。

// オブジェクトのダウンロード要求を作成します。 
// バケットの名前とオブジェクトの完全パスを指定します。 この例では、バケット名はexamplebucketで、オブジェクトの完全パスはexampledir/exampleobject.txtです。 オブジェクトのフルパスにバケット名を含めないでください。 
GetObjectRequest get = new GetObjectRequest("examplebucket", "exampledir/exampleobject.txt");

// ダウンロード範囲を指定します。 
get.setRange(new Range(0, 99)); // バイト0〜バイト99の範囲内の100バイトのデータをダウンロードします。 有効範囲はバイト0から始まります。 
// get.setRange(new Range(100, Range.INFINITE)); // バイト100の範囲内のデータをオブジェクトの最後までダウンロードします。 

OSSAsyncTask task = oss.asyncGetObject(get, new OSSCompletedCallback<GetObjectRequest, GetObjectResult>() {
    @オーバーライド
    public void onSuccess(GetObjectRequest request, GetObjectResult result) {
        // リクエストが成功しました。 
        InputStream inputStream = result.getObjectContent();

        byte[] buffer = new byte[2048];
        int len;

        try {
            while ((len = inputStream.read(buffer)) ! = -1) {
                // ダウンロードしたデータを処理します。 
            }
        } catch(IOException e){
            e.printStackTrace();
        }
    }

    @オーバーライド
    public void onFailure(GetObjectRequest request, ClientException clientExcepion, ServiceException serviceException) {
        // リクエスト例外を処理します。 
        if (clientExcepion != null) {
            // ネットワーク例外などのクライアント例外を処理します。 
            clientExcepion.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』をご参照ください。

  • 範囲ダウンロードを実行するために呼び出すことができるAPI操作の詳細については、「GetObject」をご参照ください。

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