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

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

最終更新日:Apr 02, 2025

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

使用上の注意

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

権限

デフォルトでは、Alibaba Cloud アカウントは、アカウント内のリソースに対するフルアクセス権限を持っています。一方、RAM ユーザーと Alibaba Cloud アカウントに関連付けられている RAM ロールは、最初は権限を持っていません。 RAM ユーザーまたはロールを使用してリソースを管理するには、RAM ポリシーまたはバケットポリシーを使用して必要な権限を付与する必要があります。

API

アクション

説明

GetObject

oss:GetObject

オブジェクトをダウンロードする権限を付与します。

oss:GetObjectVersion

オブジェクトバージョンを照会する権限を付与します。この権限は、オブジェクトの特定のバージョンをダウンロードする場合に必要です。

kms:Decrypt

Key Management Service ( KMS ) 復号を使用する権限を付与します。この権限は、x-oss-server-side-encryption ヘッダーを指定して暗号化したオブジェクトを部分的にダウンロードする場合に必要です。

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

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

oss.asyncGetObject(get, new OSSCompletedCallback<GetObjectRequest, GetObjectResult>() {
    @Override
    public void onSuccess(GetObjectRequest request, GetObjectResult result) {
// データの読み取りを開始します。
        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 (Exception e){
                    OSSLog.logInfo(e.toString());
                }
            }
    // ダウンロードしたオブジェクトの完全なパスを指定します。例:D:\\localpath\\exampleobject.jpg。
            try {
                FileOutputStream fout = new FileOutputStream("download_filePath");
                fout.write(buffer);
                fout.close();
            } catch (Exception e) {
                OSSLog.logInfo(e.toString());
            }
        }
    }

    @Override
    public void onFailure(GetObjectRequest request, ClientException clientException,
                          ServiceException serviceException)  {

    }
});

関連情報

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

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

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