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

Object Storage Service:オブジェクトをローカルファイルとしてダウンロードする

最終更新日:Feb 23, 2024

このトピックでは、ローカルコンピューターにオブジェクトをダウンロードする方法について説明します。

使用上の注意

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

次のコードは、特定のオブジェクトをローカルコンピューターにダウンロードする方法の例を示しています。

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

oss.asyncGetObject(get, new OSSCompletedCallback<GetObjectRequest, GetObjectResult>() {
    @オーバーライド
    public void onSuccess(GetObjectRequestリクエスト, GetObjectResult結果) {
// データの読み取りを開始します。 
        long length = result.getContentLength();
        if (length > 0) {
            byte[] buffer = new byte[(int) length];
            int readCount = 0;
            while (readCount < length) {
                try{
                    readCount += result.getObjectContent().read(buffer, readCount, (int) length - readCount);
                } catch (例外e){
                    OSSLog.logInfo(e.toString());
                }
            }
    // ダウンロードしたオブジェクトのフルパスを指定します。 例: D :\\ localpath\\exampleobject.jpg 
            try {
                FileOutputStream fout = new FileOutputStream("download_filePath");
                fout.write (バッファ);
                fout.close();
            } catch (Exception e) {
                OSSLog.logInfo(e.toString());
            }
        }
    }

    @オーバーライド
    public void onFailure(GetObjectRequest request, ClientException clientException,
                          ServiceException serviceException) {

    }
});

参考資料

  • ローカルコンピューターにオブジェクトをダウンロードするために使用される完全なサンプルコードについては、GitHubをご参照ください。

  • ローカルコンピューターにオブジェクトをダウンロードするために呼び出すAPI操作の詳細については、「GetObject」をご参照ください。

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