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

Object Storage Service:OSS SDK for Androidを使用したアップロードコールバックの設定

最終更新日:Feb 21, 2024

オブジェクトがアップロードされた後、object Storage Service (OSS) はアプリケーションサーバーにコールバックを送信できます。 アップロードコールバックを設定するには、必要なコールバックパラメーターをOSSに送信されるアップロードリクエストに追加するだけです。 このトピックでは、アップロードコールバックを設定する方法について説明します。

説明

単純なアップロードと比較して、コールバックが構成されたオブジェクトのアップロードでは、クライアントが要求を処理して応答を返すのをより長い期間待つ必要があります。

オブジェクトのアップロードとアップロードコールバックは非同期に実行され、アップロードコールバックが実行される前にローカルファイルがOSSにアップロードされます。 したがって、アップロードコールバックが返されなかった場合でも、ローカルファイルはアップロードされます。

使用上の注意

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

次のサンプルコードは、アップロードコールバックを設定する方法の例を示しています。

// アップロード要求を作成します。 
// バケットの名前、オブジェクトのフルパス、およびローカルファイルのフルパスを指定します。 この例では、バケットの名前はexamplebucket、オブジェクトのフルパスはexampledir/exampleobject.txt、ローカルファイルのフルパスは /storage/emulated/0/oss/examplefile.txtです。 
// オブジェクトのフルパスにバケット名を含めないでください。 
PutObjectRequest put = new PutObjectRequest("examplebucket", "exampledir/exampleobject.txt", "/storage/emulated/0/oss/examplefile.txt");

put.setCallbackParam(new HashMap<String, String>() {
    {
        put("callbackUrl" 、"http://oss-demo.aliyuncs.com:23450");
        put("callbackHost", "yourCallbackHost");
        put("callbackBodyType" 、"application/json");
        put("callbackBody", "{\" mimeType\":${ mimeType },\" size\":${ size}}");
    }
});

OSSAsyncTask task = oss.asyncPutObject(put, new OSSCompletedCallback<PutObjectRequest, PutObjectResult>() {
    @オーバーライド
    public void onSuccess(PutObjectRequestリクエスト, PutObjectResult結果) {
        Log.d("PutObject", "UploadSuccess");

        // 返されたコールバック情報を取得します。 リクエストにservercallbackを指定した場合にのみ、コールバック情報を取得できます。 
        文字列serverCallbackReturnJson = result.getServerCallbackReturnBody();

        Log.d("servercallback", serverCallbackReturnJson);
    }

    @オーバーライド
    public void onFailure(PutObjectRequest request, ClientException clientExcepion, ServiceException serviceException) {
        // Handle exceptions. 
    }
});
        

次のサンプルコードは、カスタムパラメーターを設定する方法の例を示しています。

put.setCallbackParam(new HashMap<String, String>() {
    {
        put("callbackUrl" 、"http://oss-demo.aliyuncs.com:23450");
        put("callbackHost", "yourCallbackHost");
        put("callbackBodyType" 、"application/json");
        put("callbackBody", "{\" object\":${ object },\" size\":${ size },\" my_var1\":${ x:var1 },\" my_var2\":${ x:var2}}");
    }
});

put.setCallbackVars(new HashMap<String, String>() {
    {
        put("x:var1" 、"value1");
        put("x:var2" 、"value2");
    }
});
        

参考資料

  • アップロードコールバックの設定に使用される完全なサンプルコードについては、GitHubをご覧ください。

  • アップロードコールバックを設定するために呼び出すことができるAPI操作の詳細については、「コールバック」をご参照ください。

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